달력

52024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

 

 

간단한 통합 매소드

 

 

nicid : 레지스트리의 폴더 주소(즉 index)

newmac : Mac 어드레스 주소(예 : 00 B0 08 A0 C1 1B)

 

newmac 값이 있을땐 설정 null 일땐 초기화

 

 

using System.Management;

 

 public static bool SetMAC(string nicid, string newmac)
        {
            bool ret = false;
            string baseReg = @"SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\";

            using (RegistryKey bkey = GetBaseKey())
            using (RegistryKey key = bkey.OpenSubKey(baseReg + nicid))
            {
                if (key != null)
                {
                   
                    RegistryKey rk = Registry.LocalMachine.OpenSubKey("SYSTEM\\CurrentControlSet\\Control\\Class\\{4D36E972-E325-11CE-BFC1-08002bE10318}\\"+ nicid, RegistryKeyPermissionCheck.ReadWriteSubTree);
                   
                    if (rk != null)
                    {
                        if (newmac != null)
                        {
                            rk.SetValue("NetworkAddress", newmac);
                        }
                        else
                        {
                            rk.DeleteValue("NetworkAddress");
                        }
                       
                        rk.Close();
                    }


                    ManagementObjectSearcher mos = new ManagementObjectSearcher(new SelectQuery("SELECT * FROM Win32_NetworkAdapter WHERE Index = " + nicid));

                    foreach (ManagementObject o in mos.Get().OfType<ManagementObject>())
                    {
                        o.InvokeMethod("Disable", null);
                        o.InvokeMethod("Enable", null);
                        ret = true;
                    }
                }
            }

            return ret;
        }

 

 

 

'Dev Language > C#' 카테고리의 다른 글

외부에서 호스팅업체 MYSQL 접근하기(+ DLL 포함 컴파일)  (0) 2016.10.05
윈도우 플랫폼 체크  (0) 2015.12.31
.NET Decompile (닷텟 디컴파일)  (0) 2015.06.04
엑셀 exprot  (0) 2015.02.24
사운드 플레이,스톱  (0) 2015.02.24
Posted by 타카스 류지
|

 

 

 

 

 

ExcelRead.zip

 

 

// *.xls 파일 가능( - xlsx파일 불가)
HSSFWorkbook workBook  = new HSSFWorkbook(new FileInputStream(new File(filePath)));
HSSFSheet sheet = null;
HSSFRow row  = null;
HSSFCell cell   null;

 

// *.xlsx 파일 가능( - xls파일 불가)
XSSFWorkbook workBook   = new XSSFWorkbook(file);
XSSFSheet sheet = null;
XSSFRow row  = null;
XSSFCell cell = null;

 

// *.xls, *.xlsx 파일 가능
Workbook workBook = WorkbookFactory.create(file);
Sheet sheet = null;
Row   row  = null;
Cell  cell  = null;

 

 


[출처] [Java] POI를 이용한 (*.xls, *.xlsx) 읽기|작성자 마이레몬트리

http://tychejin.blog.me/110182191752

 

Posted by 타카스 류지
|

 /**
  * xlsx 파일(XSSFWorkbook)을 xls 파일(HSSFWorkbook)로 변환하는 메서드.
  * [참조] http://stackoverflow.com/questions/20049922/java-poi-api-convert-from-xlsx-to-xls 
  *
  * @param xssfWorkbook
  * @return
  * @throws Exception
  */
 public static HSSFWorkbook convertXlsxToXls(String filePath) throws Exception {
  
  FileInputStream fis = new FileInputStream(new File(filePath)); 
  XSSFWorkbook xssfWorkbook = new XSSFWorkbook(fis);

     HSSFWorkbook hssfWorkbook = new HSSFWorkbook();
     int sheetCnt = xssfWorkbook.getNumberOfSheets();
     for (int i = 0; i < sheetCnt; i++) {
      Sheet sIn = xssfWorkbook.getSheetAt(i);
      Sheet sIn = xssfWorkbook.getSheetAt(0);
         Sheet sOut = hssfWorkbook.createSheet(sIn.getSheetName());
         Iterator rowIt = sIn.rowIterator();
         while (rowIt.hasNext()) {
             Row rowIn = (Row) rowIt.next();
             Row rowOut = sOut.createRow(rowIn.getRowNum());
 
             Iterator cellIt = rowIn.cellIterator();
             while (cellIt.hasNext()) {
                 Cell cellIn = (Cell) cellIt.next();
                 Cell cellOut = rowOut.createCell(cellIn.getColumnIndex(), cellIn.getCellType());
                 switch (cellIn.getCellType()) {
                 case Cell.CELL_TYPE_BLANK: break;
                 case Cell.CELL_TYPE_BOOLEAN:
                     cellOut.setCellValue(cellIn.getBooleanCellValue());
                     break;
                 case Cell.CELL_TYPE_ERROR:
                     cellOut.setCellValue(cellIn.getErrorCellValue());
                     break;
                 case Cell.CELL_TYPE_FORMULA:
                     cellOut.setCellFormula(cellIn.getCellFormula());
                     break;
                 case Cell.CELL_TYPE_NUMERIC:
                     cellOut.setCellValue(cellIn.getNumericCellValue());
                     break;
                 case Cell.CELL_TYPE_STRING:
                     cellOut.setCellValue(cellIn.getStringCellValue());
                     break;
                 }
                 CellStyle styleIn = cellIn.getCellStyle();
                 CellStyle styleOut = cellOut.getCellStyle();
                 styleOut.setDataFormat(styleIn.getDataFormat());
                 cellOut.setCellComment(cellIn.getCellComment());
             }
         }
        }
    
     return hssfWorkbook;
 }

Posted by 타카스 류지
|
function getOffset( el ) {
     var _x = 0;
     var _y = 0;
     while( el && !isNaN( el.offsetLeft ) && !isNaN( el.offsetTop ) ) {
         _x += el.offsetLeft - el.scrollLeft;
         _y += el.offsetTop - el.scrollTop;
         el = el.offsetParent;
     }
     return { top: _y, left: _x };
 }

 

 

var x = getOffset( document.getElementById('div_newPrintCount_' + listIdx) ).left;

Posted by 타카스 류지
|

http://www.cronjobservices.com

 

뭐.. 여기는 대부분 PHP 개발자겠죠? 물론 다른 언어도 해당됩니다.
하지만 웹호스팅을 이용하거나, root 접근이 불가능해 cron job 등이 안되는 환경에서 실행하려면 정말 힘들죠.
그래서 online cron job 서비스가 있습니다.
HTTP GET 요청만 지원됩니다.

안타깝게도 대부분 서비스는 단순 요청만 지원합니다. 쿠키 및 세션 지원, POST 지원 등은 유료에서만 볼 수 있습니다.

1. https://mywebcron-com.loopiasecure.com (무료)
회원제이지만 소셜 연동 가능합니다. 최소 단위는 분으로 지원됩니다.
사용 방법은 간단합니다. 단, 날짜 포멧이 미국식이라는 단점만 빼면 괜찮습니다.
정기적으로 호출할 URL과 주기, 시작시간과 종료시간을 설정하면 땡입니다. pick 으로 날짜를 잡을 수 있습니다.
최대 생성 개수는 모르겠지만, 남용하면 잘릴 수 있으니 다른 사람을 위해 적당히 써주세요.
참고로 User Agent 는 MyWebCron/1.0 (www.mywebcron.com) 으로 잡힌다고 합니다.

2. https://www.setcronjob.com/ (무료, 유료)
회원제이지만 소셜 연동은 가능합니다. 무료 기준으로 설명합니다.
스케줄 실행 개수에 제한이 있으며, 주기에 따라 제한 개수가 다릅니다. 무료 사용자는 30분 단위부터 실행 가능합니다.
실행 시 최대 실행 시간은 15초이며, 최근 5개 실행 내역이 기록되고, 메일링도 지원합니다.

3. http://www.easycron.com/ (무료, 유료)
회원제이며 소셜 연동이 가능합니다. 무료 기준으로 설명합니다.
스케줄 실행 개수는 무제한이지만, 월 200번 지원합니다. 월 단위로 초기화되기 때문에 월마다 관리를 해야 합니다.
최소 실행 가능 주기는 10분이며, 최대 실행 시간은 10초입니다. 2번 실행 실패시 비활성화되며
테스트 가능 횟수는 월 5번입니다. 낮은 우선 순위로 시작하며, 로그와 메일링 서비스를 지원하지 않습니다.

그 외 나머지는 링크 #1을 방문해서 검토 후 사용하시면 됩니다. 별표는 사용자 평가가 아니고 방문 빈도입니다.
PHP에서 스케줄링 작업? 이제 해방하세요.

 

출처 : http://www.phpschool.com/link/tipntech/78304

Posted by 타카스 류지
|
한글 -> 유니코드 결과 :

유니코드 -> 한글   결과 :

 

 

unicode.html

 

Posted by 타카스 류지
|

pclzip 라이브러리는 http://www.phpconcept.net 에서 제공하는 무료 소프트웨어로 GNU/LGP를 따릅니다. 먼저,

파일을 다운받아 예제에 작성된 위치에 include 하여 클레스를 호출하면 원하는 작업을 할 수 있습니다.

압축파일 생성, 수정, 삭제시 반환되는 배열은 다음 표와 같습니다.

 

 

 

 배열
 filename 원본 파일(또는 폴더)
 stored_filename 변경된 파일(또는 폴더)
 size 원본 크기
 compressed_size 압축된 크기
 mtime 수정시간
 comment
 folder 폴더이면 "1" 반환
 index
 status 성공하면 "ok"반환
 crc

 

Zip 압축파일 만들기

파일(또는 폴더)를 압축해 보겠습니다.

예제 (ex #1

 <?php
 
// pcl lib 경로 설정
 
include('pclzip.lib.php'
);

 
// $create = new PclZip("생성할 압축파일 이름");
 // PclZip 객체에 test.zip 압축파일로 만듭니다.
 
$zipfile = new PclZip('test.zip'
);

 
// $create->create("파일 or 디렉토리");
 // $data에 하나의 파일(또는 폴더)이거나 배열형 파일(또는 폴더)가 올 수 있습니다. 
 // test.php 파일과 www 폴더를 현제 경로에 test.zip 파일로 압축하겠습니다.
 
$data 
= array();
 
$data = array("test.php""www"
);
 
$create $zipfile->create($data
);


 echo 
"<pre>\n"
;
 
print_r($create
);

 
?>

다음은
www 폴더를 압축하되 test폴더를 만들어 압축해 보겠습니다.

예제 (ex #2
 <?php
 
// pcl lib 경로 설정
 
include('pclzip.lib.php'
);

 
// $create = new PclZip("생성할 압축파일 이름");
 // PclZip 객체에 test.zip 압축파일로 만듭니다.
 
$zipfile = new PclZip('test.zip'
);

 
// $create->create("파일 or 디렉토리", );
 // $data에 하나의 파일(또는 폴더)이거나 배열형 파일(또는 폴더)가 올 수 있습니다. 
 // www 폴더를 현제 경로에 test.zip 파일로 압축하겠습니다.
 // 그리고 $data 뒤에 test 입력하고, 압축하면 stored_filename 변수에
 // 이동경로를 확인할 수 있습니다,
 
$data "www"
;
 
$create $zipfile->create($data"test"
);


 echo 
"<pre>\n"
;
 
print_r($create
);

 
?>

 


Zip
압축파일 추가


압축파일에 새로운 파일을 추가하거나 해당 압축파일이 없으면 새로 압축파일을 만듭니다.

예제 (ex #3

 <?php
 
// pcl lib 경로 설정
 
include('pclzip.lib.php'
);

 
// PclZip 객체를 생성합니다.
 // 추가할 압축파일를 선택합니다. 
 // test.zip 에 파일을 추가하겠습니다.
 
$zipfile = new PclZip('test.zip'
); 

 
// $data에 추가할 파일을 배열로 지정합니다.
 // $data에 하나의 파일(또는 폴더)이거나 배열형 파일(또는 폴더)가 올 수 있습니다. 
 
$data = array("index.gif","test.gif"
);
 
$add $zipfile->add($data
);


 echo 
"<pre>"
;
 
print_r($add
);

 
?>
 

 

Zip 압축파일내 엔트리 얻기


다음은 압축파일내 엔트리, 즉 파일 목록을 가져 오겠습니다. 반환파일에 대한 정보를 배열로 반환하기 때문에 적절히 수정해서 사용하면 됩니다.

예제 (ex #4

 <?php
 
// pcl lib 경로 설정
 
include('pclzip.lib.php'
);

 
// PclZip 객체를 생성합니다.
 // 목록을 가져올 파일을 선택합니다.
 
$zipfile = new PclZip('test.zip'
); 

 
// 엔트리 얻기
 
$list $zipfile->listContent
();


 echo 
"<pre>"
;
 
print_r($list
);
 
/*
 결과:
 Array
 (
    [0] => Array
        (
            [filename] => test/
            [stored_filename] => test/
            [size] => 0
            [compressed_size] => 0
            [mtime] => 1310291714
            [comment] =>
            [folder] => 1
            [index] => 0
            [status] => ok
            [crc] => 0
        )
    [1] => Array
        (
            [filename] => test/lib/
            [stored_filename] => test/lib/
            [size] => 0
            [compressed_size] => 0
            [mtime] => 1310291392
            [comment] =>
            [folder] => 1
            [index] => 1
            [status] => ok
            [crc] => 0
        )
        ...
 }
 */
 
?> 

 


Zip 압축파일 해제


압축파일을 현재 디렉토리에 압축해제 해보겠습니다.

예제 (ex #5

 <?php
 
// pcl lib 경로 설정
 
include('pclzip.lib.php'
);

 
// PclZip 객체를 생성합니다.
 //$객체 = new PclZip("해제할 압축파일 이름");
 
$zipfile = new PclZip('test.zip'
); 

 
// 참고로 $extract 변수를 정의하지 않아도 압축해제는 가능합니다.
 
$extract $zipfile->extract
(); 


 echo 
"<pre>"
;
 
print_r($extract
);

 
?>

 

다음은 다른 디렉토리에 압축파일을 해제하도록 하겠습니다.

예제 (ex #6

 <?php
 
// pcl lib 경로 설정
 
include('pclzip.lib.php'
);

 
// PclZip 객체를 생성합니다.
 //$객체 = new PclZip("해제할 압축파일 이름");
 
$zipfile = new PclZip('test.zip'
); 

 
// 압축파일을 habony 폴더에 압축해제합니다.
 
$extract $zipfile->extract(PCLZIP_OPT_PATH'./habony/'
); 


 echo 
"<pre>"
;
 
print_r($extract
);

 
?>

 

Zip 압축파일내 파일삭제


이제 부분적으로 압축파일내 파일을 삭제해 보겠습니다.

예제 (ex #7

 <?php
 
// pcl lib 경로 설정
 
include('pclzip.lib.php'
);


 
// PclZip 객체를 생성합니다.
 // 압축파일을 선택합니다.
 
$zipfile = new PclZip('test.zip'
); 

 
// test.gif 를 삭제하겠습니다.
 // 하나의 파일(또는 폴더)이거나 배열형 파일(또는 폴더)가 올 수 있습니다. 
 
$delete $zipfile->delete(PCLZIP_OPT_BY_NAME,"test.gif"
);


 echo 
"<pre>"
;
 
print_r($delete
);

 
?>

 

 

출처 : http://blog.habonyphp.com/161#.VZ8gYqOJiUk

Posted by 타카스 류지
|

var value = ' 02 - 1234 - 5678 ';

value = value.replace(/\-/g,''); //특정문자 제거

value = value.replace(/^\s+/,''); //앞의 공백 제거

value = value.replace(/\s+$/,''); //뒤의 공백 제거

value = value.replace(/^\s+|\s+$/g,''); //앞뒤 공백 제거

value = value.replace(/\s/g,''); //문자열 내의 공백 제거

value = value.replace(/\n/g,''); //개행 제거

value = value.replace(/\r/g,''); //엔터 제거

 

// 0 제거 

var value = '001002003004005006'

var result = value.replace(/[^(1-9)]/gi,"");

 

[정규식의 gi 설명]
* g : 발생할 모든 pattern에 대한 전역 검색
* i : 대/소문자 구분 안함
* m: 여러 줄 검색 (참고)

Posted by 타카스 류지
|
/**
*
*  Base64 encode / decode
*  http://www.webtoolkit.info/
*
**/
  
var Base64 = {
  
    // private property
    _keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
  
    // public method for encoding
    encode : function (input) {
        var output = "";
        var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
        var i = 0;
  
        input = Base64._utf8_encode(input);
  
        while (i < input.length) {
  
            chr1 = input.charCodeAt(i++);
            chr2 = input.charCodeAt(i++);
            chr3 = input.charCodeAt(i++);
  
            enc1 = chr1 >> 2;
            enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
            enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
            enc4 = chr3 & 63;
  
            if (isNaN(chr2)) {
                enc3 = enc4 = 64;
            } else if (isNaN(chr3)) {
                enc4 = 64;
            }
  
            output = output +
            this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) +
            this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);
  
        }
  
        return output;
    },
  
    // public method for decoding
    decode : function (input) {
        var output = "";
        var chr1, chr2, chr3;
        var enc1, enc2, enc3, enc4;
        var i = 0;
  
        input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
  
        while (i < input.length) {
  
            enc1 = this._keyStr.indexOf(input.charAt(i++));
            enc2 = this._keyStr.indexOf(input.charAt(i++));
            enc3 = this._keyStr.indexOf(input.charAt(i++));
            enc4 = this._keyStr.indexOf(input.charAt(i++));
  
            chr1 = (enc1 << 2) | (enc2 >> 4);
            chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
            chr3 = ((enc3 & 3) << 6) | enc4;
  
            output = output + String.fromCharCode(chr1);
  
            if (enc3 != 64) {
                output = output + String.fromCharCode(chr2);
            }
            if (enc4 != 64) {
                output = output + String.fromCharCode(chr3);
            }
  
        }
  
        output = Base64._utf8_decode(output);
  
        return output;
  
    },
  
    // private method for UTF-8 encoding
    _utf8_encode : function (string) {
        string = string.replace(/\r\n/g,"\n");
        var utftext = "";
  
        for (var n = 0; n < string.length; n++) {
  
            var c = string.charCodeAt(n);
  
            if (c < 128) {
                utftext += String.fromCharCode(c);
            }
            else if((c > 127) && (c < 2048)) {
                utftext += String.fromCharCode((c >> 6) | 192);
                utftext += String.fromCharCode((c & 63) | 128);
            }
            else {
                utftext += String.fromCharCode((c >> 12) | 224);
                utftext += String.fromCharCode(((c >> 6) & 63) | 128);
                utftext += String.fromCharCode((c & 63) | 128);
            }
  
        }
  
        return utftext;
    },
  
    // private method for UTF-8 decoding
    _utf8_decode : function (utftext) {
        var string = "";
        var i = 0;
        var c = c1 = c2 = 0;
  
        while ( i < utftext.length ) {
  
            c = utftext.charCodeAt(i);
  
            if (c < 128) {
                string += String.fromCharCode(c);
                i++;
            }
            else if((c > 191) && (c < 224)) {
                c2 = utftext.charCodeAt(i+1);
                string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
                i += 2;
            }
            else {
                c2 = utftext.charCodeAt(i+1);
                c3 = utftext.charCodeAt(i+2);
                string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
                i += 3;
            }
  
        }
  
        return string;
    }
  
}

'Dev Language > JAVASCRIPT' 카테고리의 다른 글

JAVASCRIPT 한글 유니코드 변경  (0) 2015.07.31
JAVASCRIPT REPLACE 정규식  (0) 2015.07.07
JAVASCRIPT 동적으로 인자값 받는방법  (0) 2015.06.24
jQuery 정리  (0) 2015.06.04
javascript JS 호출(import)  (0) 2015.06.02
Posted by 타카스 류지
|
function fn_test() {

    for(var i=0, cnt=arguments.length; i < cnt; i++) {

        var arg = arguments[i];

        alert(arg);

    }

}

fn_test('홍길동', '이천원', 100);

자주 사용은 안하시면 참조하면 될거같다.

'Dev Language > JAVASCRIPT' 카테고리의 다른 글

JAVASCRIPT REPLACE 정규식  (0) 2015.07.07
javascript Base64 인코딩(encode) 및 디코딩(decode) 처리  (0) 2015.06.25
jQuery 정리  (0) 2015.06.04
javascript JS 호출(import)  (0) 2015.06.02
javascript 쿠키 셋팅,추출  (0) 2015.06.02
Posted by 타카스 류지
|

 

 

암호화 encrypt 함수

 

### PHP암호화 함수
function encrypt($data,$k) { 
 $encrypt_these_chars = "1234567890ABCDEFGHIJKLMNOPQRTSUVWXYZabcdefghijklmnopqrstuvwxyz.,/?!$@^*()_+-=:;~{}";
 $t = $data;
 $result2;
 $ki;
 $ti;
 $keylength = strlen($k);
 $textlength = strlen($t);
 $modulo = strlen($encrypt_these_chars);
 $dbg_key;
 $dbg_inp;
 $dbg_sum;
 
 for ($result2 = "", $ki = $ti = 0; $ti < $textlength; $ti++, $ki++) {
  if ($ki >= $keylength) {
   $ki = 0;
  }
  $dbg_inp += "["+$ti+"]="+strpos($encrypt_these_chars, substr($t, $ti,1))+" ";   
  $dbg_key += "["+$ki+"]="+strpos($encrypt_these_chars, substr($k, $ki,1))+" ";   
  $dbg_sum += "["+$ti+"]="+strpos($encrypt_these_chars, substr($k, $ki,1))+ strpos($encrypt_these_chars, substr($t, $ti,1)) % $modulo +" ";
  $c = strpos($encrypt_these_chars, substr($t, $ti,1));
  $d;
  $e;
  
  if ($c >= 0) {
   $c = ($c + strpos($encrypt_these_chars, substr($k, $ki,1))) % $modulo;
   $d = substr($encrypt_these_chars, $c,1);
   $e .= $d;
  } else {
   $e += $t.substr($ti,1);
  }
  }
  
  $key2 = $result2;
  $debug = "Key  : "+$k+"\n"+"Input: "+$t+"\n"+"Key  : "+$dbg_key+"\n"+"Input: "+$dbg_inp+"\n"+"Enc  : "+$dbg_sum;
  return $e . "";
 }

 

암호화 사용
$data = "iloveyou!good"; //암호화 해서 넘길 값
$key = "123456"; //암호화에 이용될 키 값
$edata = encrypt($data,$key); //key 값을 이용해 data 값을 암호화해서 edata에 담았습니다.
$getdata = urlencode($edata); //이 값을 post가 아닌 get으로 넘긴다면 urlencode를 해주시는게 좋겠죠!
echo $getdata; //최종 암호화 및 url 엔코드까지 한 값 입니다.

 

출력 : imqyi%3Fov%40jstd

 

복호화 decrypt 함수



function decrypt($key2,$secret) {
 $encrypt_these_chars = "1234567890ABCDEFGHIJKLMNOPQRTSUVWXYZabcdefghijklmnopqrstuvwxyz.,/?!$@^*()_+-=:;~{}";
 $input = $key2;
 $output = "";
 $debug = "";
 $k = $secret;
 $t = $input;
 $result;
 $ki;
 $ti;
 $keylength = strlen($k);
 $textlength = strlen($t);
 $modulo = strlen($encrypt_these_chars);
 $dbg_key;
 $dbg_inp;
 $dbg_sum;
 for ($result = "", $ki = $ti = 0; $ti < $textlength; $ti++, $ki++) {
  if ($ki >= $keylength){
   $ki = 0;
  }
  $c = strpos($encrypt_these_chars, substr($t, $ti,1));
  if ($c >= 0) {
   $c = ($c - strpos($encrypt_these_chars , substr($k, $ki,1)) + $modulo) % $modulo;
   $result .= substr($encrypt_these_chars , $c, 1);
  } else {
   $result += substr($t, $ti,1);
  }
 }
 return $result;
}

 

 

복호화 사용


$data = urldecode($getdata); //urlencode로 받은 값을 먼저 urldecode 처리해야함
$key = "123456"; //암호화 할 때 이용한 키값과 동일하게 사용
$ddata = decrypt($data,$key); //복호화 처리
echo $ddata; //최종 복호화 값 전달하고자 하는 값이 제대로 전달 되었군요!

 

출력결과 : iloveyou!good

위 암호화 복호화 방식의 단점은
$encrypt_these_chars = "1234567890ABCDEFGHIJKLMNOPQRTSUVWXYZabcdefghijklmnopqrstuvwxyz.,/?!$@^*()_+-=:;~{}";

에 지정된 값만 암호화 된다는 것 입니다.

즉, 암호화 비교를 할 값이 없는건에 대해서는 추가 해야 합니다.

참고로, 한글은 안됩니다. ^^

 

[출처] 세이박스 - http://www.saybox.co.kr/bbs/board.php?bo_table=board02&wr_id=130

Posted by 타카스 류지
|

 

 

 

1. DotPeek



License : FREE,  URL : https://www.jetbrains.com/decompiler/







2. JustDecompile



License : FREE,  URL : http://www.telerik.com/products/decompiler.aspx







3. DotPeek



License : FREE,  URL : http://www.netdecompiler.com/







4. Salamander


-- 사진이 안올라가네요!

-- 이 녀석은 웹에 exe를 업로드 하면 디컴파일되어 다운로드 됩니다.

-- 개인적으로 저는 이런 툴들을 좋아합니다.


License : FREE,  URL : http://www.remotesoft.com/salamander/






5. .NET CodeReflect



License : FREE,  URL : http://www.devextras.com/decompiler/

 

'Dev Language > C#' 카테고리의 다른 글

윈도우 플랫폼 체크  (0) 2015.12.31
Mac Address Changer(맥 어드레스 변경)  (0) 2015.12.30
엑셀 exprot  (0) 2015.02.24
사운드 플레이,스톱  (0) 2015.02.24
숫자체크,Right,Left,Mid 자르기  (0) 2015.02.24
Posted by 타카스 류지
|

jquery CDN  jquery

 

1.x snippet: <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
2.x snippet: <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>

versions:2.1.4, 2.1.3, 2.1.1, 2.1.0, 2.0.3, 2.0.2, 2.0.1, 2.0.0, 1.11.3, 1.11.2, 1.11.1, 1.11.0, 1.10.2, 1.10.1, 1.10.0, 1.9.1, 1.9.0, 1.8.3, 1.8.2, 1.8.1, 1.8.0, 1.7.2, 1.7.1, 1.7.0, 1.6.4, 1.6.3, 1.6.2, 1.6.1, 1.6.0, 1.5.2, 1.5.1, 1.5.0, 1.4.4, 1.4.3, 1.4.2, 1.4.1, 1.4.0, 1.3.2, 1.3.1, 1.3.0, 1.2.6, 1.2.3


페이지 로딩후 이벤트  jquery


<script>
    $(document).ready(
        function(){
            alert("로딩 완료");
        }
    );
</script>


<script>
    $(function(){
        alert("심플버전");
    });
</script>

 


jquery 엘리먼트 선택


-태그
$('tr')
$('div')

-id

$('#id')

-class
$('.class')

-태그.클래스 태그 태그
$('div.class a span')

 

jquery 필터

 

필터 : 특정 아이템을 제거하고 필요한 것만 남김

필터 => ":" 로 표시

:even =>  짝수번째 엘리먼트
:odd => 홀수번째 엘리먼트
:first => 첫번째 엘리먼트
:last => 마지막 엘리먼트
:eq => 특정 엘리먼트 선택시

 

jquery css 프로퍼티 사용

 

 - css 호출

$('#simple').css('height');
$('#simple').css('width');
$('#simple').css('font-size');


 - css 입력

$('#simple').css('height','300px');
$('#simple').css('width','200px');
$('#simple').css('font-size','12px');
$('#simple').css('background-color','#ff0000');

 

 - css 다중 입력

$('#simple').css({'height':'300px','width':'200px'});
 

 

jquery css 클래스 추가/삭제 

 

$('#simple').addClass('클래스네임');
$('#simple').removeClass('클래스네임');

 

hide, show, toggle  jquery
 
$('#simple').show();    //보이기
$('#simple').hide();    //숨기기
 


toggle 이용한 보이기,숨기기

$('#simple_btn').click(
    function(){
        if($('#simple').is(':visible')){
            $('#simple').hide();
            //$(this).hide();
        }else{
            $('#simple').show();
            //$(this).show();
        }
    }
);

 

toggle 이용한 value값 변경
$('#simple_btn').click(
    function(){
        if($('#simple').is(':visible')){
            $('#simple').val("hide");
            //$(this).val("hide");
        }else{
            $('#simple').val("hide");
            //$(this).val("show");
        }
    }
);

 


jquery 엘리먼트 추가/삭제


 - 형제 노드로 추가할 경우

$('<input type="button" value="추가"  id="btn">').insertAfter('#simple');
$('<input type="button" value="추가"  id="btn">').insertBefore('#simple');

 

 - 자식 노드로 추가할 경우

$('<strong>시작</strong>').prependTo('#simple');
$('<strong>끝</strong>').appendTo('#simple');


 - 엘리먼트 삭제

$('#simple').remove();

$('#simple').remove(':contains("텍스트")');

 


jquery 내용 바꾸기

 

$('span').html("변경");
$('span').innerHTML("변경");
$('span').text("변경");

 


jquery 부가적인 함수

 

.slideToggle();

.fadeIn();
.fadeOut();

.mouseover();
.mouseout();

.hover();  - [mouseover, mouseout]

 .end() : 선택식을 한단계 전으로 돌린다.

.filter() : 필터

.prev() : 앞의 형제노드


 
this 선택자  jquery

 

자기 자신을 호출할때나, 같은 태그가 반복될시

$("span", this).text('추가');
$("span", this).remove().text('삭제');

 

jquery checkbox 모두선택

if($("#simple_chkbox").attr("checked")){
    $("input[name=chk]:checkbox").attr("checked", true);
}else{
    $("input[name=chk]:checkbox").attr("checked", false);
}
 
 

jquery style 사용
 

$("#simple").attr("style", "display:none");

 

 

jquery 기본 css 셀렉터


*        : 모든 엘리먼트와 일치
E        : 태그명이 E인 모든 엘리먼트와 일치
E F      : E의 자손이면서 태그명이 F인 모든 엘리먼트와 일치
E>F      : E의 바로 아래 자식이면서 태그명이 F인 모든 엘리먼트와 일치
E+F      : E의 형제 엘리먼트로 바로 다음에 나오는 엘리먼트 F와 일치
E~F      : E의 형제 엘리먼트로 다음에 나오는 모든 엘리먼트 F와 일치
E:has(F) : 태그명이 F인 자손을 하나 이상 가지고 태그명이 E인 모든 엘리먼트와 일치
E.C      : 클래스명 C를 가지는 모든 엘리먼트 E와 일치. E의 생락은 *.C와 동일함
E#I      : 아이디가 I인 엘리먼트 E와 일치. E의 생략은 *#I와 동일함
E[A]     : 어트리뷰트 A를 가지는 모든 엘리먼트 E와 일치
E[A=V]   : 값이 V인 어트리뷰트 A를 가지는 모든 엘리먼트 E와 일치
E[A^=V]  : 값이 V로 시작하는 어트리뷰트 A를 가지는 모든 엘리먼트 E와 일치
E[A$=V]  : 값이 V로 끝나는 어트리뷰트 A를 가지는 모든 엘리먼트 E와 일치
E[A*=V]  : 값에 V를 포함하는 어트리뷰트 A를 가지는 모든 엘리먼트 E와 일치

 


jquery 위치 기반 셀렉터  jquery

 

 - 페이지에서 처음으로 일치하는 엘리먼트
:first

 - 페이지에서 마지막으로 일치하는 엘리먼트
:last

 - 첫번째 자식 엘리먼트
:first-child

 - 마지막 자식 엘리먼트
:last-child

 - 형제가 없는 모든 엘리먼트
:only-child

 

n은 1부터 시작

 

 - n번째 자식 엘리먼트
:nth-child(n)

 - 짝수 또는 홀수 자식 엘리먼트
:nth-child(even|odd)

 - 전달된 공식에 따른 n번째 자식 엘리먼트
:nth-child(Xn+Y)

 - 페이지 전체의 짝수 / 홀수 번째 엘리먼트
:even / :odd

 

n은 0부터 시작

 

 - n번째로 일치하는 엘리먼트
:eq(n)

 - n번째 엘리먼트(포함되지 않음) 이후의 엘리먼트와 일치
:gt(n)

 - n번째 엘리먼트(포함되지 않음 ) 이전의 엘리먼트와 일치
:li(n)

 

 

jquery 필터 종류

 

 :animated

 현재 애니메이션이 적용되고 있는 엘리먼트를 선택한다

 :button

 모든 버튼을 선택한다

 :checkbox

 체크박스 엘리먼트만 선택한다

 :checked

 선택된 체크박스나 라디오 버튼만을 선택한다

 :contains(foo)

 텍스트 foo를 포함하는 엘리먼트만 선택한다

 :disabled

 인터페이스에서 비활성화 상태인 모든 폼 엘리먼트를 선택한다

 :enabled

 인터페이스에서 활성화 상태인 모든 폼 엘리먼트를 선택한다

 :file

 모든 파일 엘리먼트를 선택한다
 :header  헤더 엘리먼트만 선택한다

 :hidden

 감춰진 엘리먼트만 선택한다

 :image

 폼 이미지를 선택한다

 :input

 input 엘리먼트만 선택

 :not(filter)

 필터의 값을 반대로 변경

 :parent

 빈 엘리먼트를 제외하고 텍스트도 포함해서 자식 엘리먼트를 가지는 엘리먼트 선택

 :password

 패스워드 엘리먼트 선택

 :radio

 라디오 버튼 엘리먼트 선택

 :reset

 리셋 버튼 엘리먼트만 선택

 :selected

 선택된 엘리먼트만 선택

 :submit

 전송 버튼을 선택

 :text

 텍스트 엘리먼트만 선택

 :visible

 visible 엘리먼트만 선택

 

 

 

jquery Command

 

 size()

 엘리먼트 개수를 리턴

 get(index)

 집합에서 하나 또는 모든 엘리먼트를 반환, index 생략하면 전체 배열을 반환

 index(element)

 집합에서 element를 찾고, 집합에서 엘리먼트의 인덱스를 반환한다.

 add()

 엘리먼트를 추가한다. html, 셀렉터, 엘리먼트, 배열 등을 넣을 수 있다.

 not()

 집합에서 엘리먼트를 제거한다.

 filter()

 표현식이나 필터링 함수를 이용해서 필터링한다.

 slice(시작, 끝)

 집합에서 연속하는 일부분을 반환한다. 0부터 시작

 find()

 전달된 표현식과 일치하는 엘리먼트를 반환한다

 is()

 전달된 표현식과 일치하는 엘리먼트가 있는지 확인한다. [ex : true, false]

 children()

 엘리먼트의 자식으로 구성된 배열 반환

 contents()  콘텐츠로 구성된 배열을 반환

 next()

 바로 다음에 나오는 형제 엘리먼트를 반환

 nextAll()

 바로 다음에 나오는 모든 형제 엘리먼트 반환

 parent()

 바로 위 부모로 구성된 배열 반환

 parents()

 엘리먼트의 조상 엘리먼트 배열 반환

 prev()

 바로 이전의 형제 배열 반환

 prevAll()

 이전의 모든 형제 배열 반환

 siblings()

 모든 형제 엘리먼트 배열을 반환

 end()

 이전 확장 집합으로 돌아간다.

 andself()

 집합 두개를 하나로 합친다.

 each()

 모든 엘리먼트를 순회하면서 호출

 attr()

 어트리뷰트 값을 가져온다.

Posted by 타카스 류지
|

참고 사이트 : http://www.phpconcept.net

 

 

pclzip-2-8-2.zip

 

 

include('pclzip.lib.php');

//PclZip 객체를 생성합니다.
//$객체 = new PclZip("생성할 압축파일 이름");
$zipfile = new PclZip('test.zip');

//zip파일에 압축할 파일이나 디렉토리의 경로를 지정하여 압축을 실행합니다.
//$객체->create("파일이나 디렉토리 경로");
$create = $zipfile->create("./");

//압축파일이 정상적으로 생성되었는지 확인합니다.
if(!empty($create))
echo "test.zip created successfully.";
else
echo "Failed to create test.zip";
Posted by 타카스 류지
|
function loadScript(url, callback) {
   var script = document.createElement('script');
   script.src = url;
   script.onload = callback;
   document.getElementsByTagName('head')[0].appendChild(script);
 }

var aa = function() {
  alert('출력');
};
loadScript('import.js', aa);

'Dev Language > JAVASCRIPT' 카테고리의 다른 글

JAVASCRIPT 동적으로 인자값 받는방법  (0) 2015.06.24
jQuery 정리  (0) 2015.06.04
javascript 쿠키 셋팅,추출  (0) 2015.06.02
getElementsByClass  (0) 2015.04.21
JAVASCRIPT 날짜 사용하기  (0) 2015.04.07
Posted by 타카스 류지
|

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

데이터는 필요사항에 맞춰 가공을 해야 편합니다.

 

 

실시간t세션저장.php

//사용자OS
function getOsName($agent)
{
	global $OsSet1,$OsSet2;

	$i = 0;
	foreach($OsSet1 as $o)
	{
		$i++;
		if(strstr($agent,$o)) 
		{
			if(is_array($OsSet2)) return $OsSet2[$i-1];
			else return $i-1;
		}
	}
	return is_array($OsSet2) ? $OsSet2[0] : 0;
}

//사용자브라우저
function getBrowserName($agent)
{
	global $BrSet1;

	$i = 0;
	foreach($BrSet1 as $b)
	{
		$i++;
		if (strstr($agent,$b)) return $i-1;
	}
	return 0;
}

//로봇 체크
function robotChecker($useragent)  
{
	$robotPattern = array( 
	    'Googlebot' => 1, 
	    'NaverBot' => 1, 
	    'TechnoratiSnoop' => 1, 
	    'Allblog.net' => 1, 
	    'CazoodleBot' => 1, 
	    'nhn/1noon' => 1, 
	    'Feedfetcher-Google' => 1, 
	    'Yahoo! Slurp' => 1, 
	    'RMOM' => 1, 
	    'msnbot' => 1, 
	    'Technoratibot' => 1, 
	    'sproose' => 1, 
	    'CazoodleBot' => 1, 
	    'ONNET-OPENAPI' => 1, 
	    'UCLA CS Dept' => 1, 
	    'Snapbot' => 1, 
	    'DAUM RSS Robot' => 1, 
	    'RMOM' => 1, 
	    'S20 Wing' => 1, 
	    'FeedBurner' => 1, 
	    'xMind' => 1, 
	    'openmaru feed aggregator' => 1, 
	    'ColFeed' => 1, 
	    'MJ12bot' => 1, 
	    'Twiceler' => 1, 
	    'ia_archiver' => 1, 
	    //'Daumoa' => 1, 
	    'Mediapartners-Google' => 1 
	); 

	foreach ($robotPattern as $agentName => $value)
		if(strpos($useragent,$value)!==false) return true;
	return false;
}

//IP출력
function getIpAddress($ip,$flag,$es)
{
	if (!$flag) return '';
	if ($flag == 2) return $ip;
	else{
		$ipx = explode('.' , $ip);
		$ips = $ipx[0].'.'.$ipx[1].'.'.$es.'.'.$ipx[3];
		return $ips;
	}
}



// 실시간 접속 현황 세션 저장

$gnum = 0;
$mbrstr = '';
$gststr = '';

$isRobot = robotChecker($_SERVER['HTTP_USER_AGENT']);//strstr($_SERVER['HTTP_USER_AGENT'],'bot');

$nowtime = $date['totime'];
$country = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2);
$tmpfolder = './_tmp/guest/';
$now_path = urldecode(stripslashes($g['location'])); <- 각 사이트별 네비게이션
$OsSet1 = array('Unknown','Linux','Mac','Irix','Sunos','Phone','Windows CE','Windows 98','Windows 9','Windows NT 4','Windows NT 5.0','Windows NT 5.1','Windows NT 5.2','Windows NT 6.0','Windows NT 6.1','Windows NT 6.2','Windows NT 6.3');
$OsSet2   = array('Unknown','Linux','Mac','Irix','Sunos','Phone','Win CE','Win 98','Win ME','Win NT','Win 2000','Win XP','Win 2003','Vista','Win 7','Win 8','Win 8.1');
$BrSet1 = array('Unknown','MSIE 10','MSIE 9','MSIE 8','MSIE 7','MSIE 6','MSIE 5','Firefox','Opera','Chrome','Safari','Googlebot','bot','X11','Netscape','Swing');

$fp = fopen($tmpfolder.$_SERVER['REMOTE_ADDR'].'.guest', "w");
fwrite($fp , $nowtime.'|'.($_SESSION['logtime']?$_SESSION['logtime']:$nowtime).'|'.$now_path.'|'.$country.'|||'.$_SERVER['HTTP_USER_AGENT'].'||'.getOsName($_SERVER['HTTP_USER_AGENT']).'|');
fclose($fp);
@chmod($tmpfolder.$_SERVER['REMOTE_ADDR'].'.guest',0707);


if (!$isRobot)
{
$opendir = opendir($tmpfolder);
while(false !== ($file = readdir($opendir)))
{ 
if($file == '.'|| $file == '..') continue;

$timex = file($tmpfolder.$file);
$time = explode('|',$timex[0]);
$dtime = date('YmdHis', mktime(substr($time[0],8,2),substr($time[0],10,2)+3,substr($time[0],12,2),substr($time[0],4,2),substr($time[0],6,2),substr($time[0],0,4)));
$ismember = strstr($file,'.member');
if($nowtime > $dtime) //파일 생성시간 3분
{
unlink($tmpfolder.$file);
}
else {

$gnum++;
$gststr .= getIpAddress(str_replace('.guest','',$file),1,iconv("EUC-KR", "UTF-8", "★")).'^^^'.$time[1].'^'.$time[2].'^'.$time[3].'^^'.str_replace("^","",$time[6]).'^'.$time[7].'^'.$time[8].'^(@)';
}
}
closedir($opendir);
}


'Dev Language > PHP' 카테고리의 다른 글

PHP에서 암호화 encrypt 복호화 decrypt 해서 값을 넘기기  (0) 2015.06.18
PHP ZIP 압축 라이브러리  (0) 2015.06.03
PHP 문자열 인코딩 utf8,euc-kr 펑션  (0) 2015.06.02
PHP 메일 보내기  (0) 2015.06.02
PHP 배열 사용  (0) 2015.06.02
Posted by 타카스 류지
|
/*쿠키세팅*/
function setCookie(name,value,expiredays) 
{ 
 var todayDate = new Date(); 
 todayDate.setDate( todayDate.getDate() + expiredays ); 
 document.cookie = name + "=" + escape( value ) + "; path=/; expires=" + todayDate.toGMTString() + ";" 
}
 
 
setCookie('good','1',1)
 
 
/*쿠키추출*/
function getCookie( name )
{
 var nameOfCookie = name + "=";
 var x = 0;
 while ( x <= document.cookie.length )
 {
  var y = (x+nameOfCookie.length);
  if ( document.cookie.substring( x, y ) == nameOfCookie ) 
  {
   if ( (endOfCookie=document.cookie.indexOf( ";", y )) == -1 ) endOfCookie = document.cookie.length;
   return unescape( document.cookie.substring( y, endOfCookie ) );
  }
  x = document.cookie.indexOf( " ", x ) + 1;
  if ( x == 0 ) break;
 }
 return "";
}
 
getCookie('good');  //출력값 1

'Dev Language > JAVASCRIPT' 카테고리의 다른 글

jQuery 정리  (0) 2015.06.04
javascript JS 호출(import)  (0) 2015.06.02
getElementsByClass  (0) 2015.04.21
JAVASCRIPT 날짜 사용하기  (0) 2015.04.07
JAVASCRIPT PARAM 값 가져오기  (0) 2015.03.19
Posted by 타카스 류지
|
function getKRtoUTF($str)
{
  return iconv('euc-kr','utf-8',$str);
}


function getUTFtoKR($str)
{
  return iconv('utf-8','euc-kr',$str);
}

 

딱 보면 알수있는 코드

'Dev Language > PHP' 카테고리의 다른 글

PHP ZIP 압축 라이브러리  (0) 2015.06.03
PHP 실시간 접속 세션 저장  (0) 2015.06.02
PHP 메일 보내기  (0) 2015.06.02
PHP 배열 사용  (0) 2015.06.02
QR 코드 생성기  (0) 2015.02.16
Posted by 타카스 류지
|
function getUTFtoKR($str)
{
   return iconv('utf-8','euc-kr',$str);
}



//이메일전송
function getSendMail($to,$from,$subject,$content,$html) 
{

   if ($html == 'TEXT') $content = nl2br(htmlspecialchars($content));
   $to_exp   = explode('|', $to);
   $from_exp = explode('|', $from);
   $To = $to_exp[1] ? "\"".getUTFtoKR($to_exp[1])."\" <$to_exp[0]>" : $to_exp[0];
   $Frm = $from_exp[1] ? "\"".getUTFtoKR($from_exp[1])."\" <$from_exp[0]>" : $from_exp[0];
   $Header = "From:$Frm\nReply-To:$frm\nX-Mailer:PHP/".phpversion();
   $Header.= "\nContent-Type:text/html;charset=EUC-KR\r\n"; 
   return @mail($To,getUTFtoKR($subject),getUTFtoKR($content),$Header);
}

 

 

 

getUTFtoKR 이 펑션을 사용하는건 인코딩 타입이 UTF8 인 경우 한글은 EUC-KR 로 변형 시켜주기 위해서 사용하는것

 

예제

 

getSendMail("exmple@google.com|홍길동","exmple|관리자","제목","내용","HTML");

 

 

일반적인 웹 호스팅 업체를 사용할경우 메일발송서버가 설치되어있습니다.

'Dev Language > PHP' 카테고리의 다른 글

PHP 실시간 접속 세션 저장  (0) 2015.06.02
PHP 문자열 인코딩 utf8,euc-kr 펑션  (0) 2015.06.02
PHP 배열 사용  (0) 2015.06.02
QR 코드 생성기  (0) 2015.02.16
MYSQL 단일 파일 웹접속용  (0) 2013.01.24
Posted by 타카스 류지
|

 

 

단일 배열

 

 

[배열명] = array();

 

 

- 숫자
$arr = array();
$arr[0] = "1";
$arr[1] = "2";
$arr[2] = "3";

echo $arr[0];

 

- 문자
$arr = array();
$arr['A'] = "1";
$arr['B'] = "2";
$arr['C'] = "3";

echo $arr['A'];

 

다차원 배열

 

 

[배열명] = array( array(), array() );

 

- 숫자
$arr = array(      
 array(10, 20, 30),
 array(40, 50, 60)
);

echo $arr[0][0];

 

- 문자
$arr = array(
 "A"=>array("A1"=>"1", "A2"=>"2", "A3"=>"3"),
 "B"=>array("A1"=>"4", "B1"=>"5", "C1"=>"6")
);

 

echo $arr['A']['A1'];

 

 

이정도면 충분할거같다

'Dev Language > PHP' 카테고리의 다른 글

PHP 문자열 인코딩 utf8,euc-kr 펑션  (0) 2015.06.02
PHP 메일 보내기  (0) 2015.06.02
QR 코드 생성기  (0) 2015.02.16
MYSQL 단일 파일 웹접속용  (0) 2013.01.24
PHP 내부 함수  (0) 2013.01.24
Posted by 타카스 류지
|

여러 엘리먼트들을 한꺼번에 받아오려고 getElementById()에 document.getElementById('*').style.background ="#FFFFFF";

이런식으로 와일드카드를 쓸 수 없나 조사를 했더니 getElementById는 하나의 엘리먼트값만 받기 때문에 불가능하다는 것.
 와일드 카드를 쓸 수 있는 건 getElementsByTagName 밖에 없는 듯.

여러 클래스들의 엘리먼를 받아오는 메소드는 있다는 말을 듣고 클래스쪽으로 전환.
 메소드명은 getElementByClass가 아니라 getElementsByClassName 이다.

사용법은
 document.getElementsByClassName(className [, parentElement])
  인수: className = 클래스명, parentElement = 부모엘리먼트


'main' ID를 갖고있는 엘리먼트 내에서 'test'클래스를 갖고있는 엘리먼트의 모두를 얻음
  document.getElementById('main').getElementsByClassName('test')

'test' 클래스 내의 모든 노드들을 취득해, id 엘리먼트값을 추출
  var firstSlot = document.getElementsByClassName("test");
  if(firstSlot[0]){
    var nodes = firstSlot[0].childNodes;
    var id = nodes[0].id;
  }

더나아가 JavaScript 1.6의 배열 확장을 더해서 사용해보면,

'test'클래스를 가지고 있는 div 엘리먼트의 모두를 얻음
  Array.filter( document.getElementsByClassName('test'), function(elem){
    return elem.nodeName == 'DIV';
  });

'test'클래스를 가지고 있는 요소의 모두를 얻음(부모엘리먼트도 포함)
  var test = document.getElementsByClassName('test');
  Array.filter( test, function(elem){
    return Array.indexOf( test, elem.parentNode ) > -1;
  });


 또한, 직접 메소드를 만들어서 사용하는 것도 가능.
 getElementsByTagName을 사용해서 태그 네임을 받아온 후 체크를 해서 오브젝트를 얻어낸다.
 

function getElementsByClass(searchClass, node, tag) {
  var classElements = new Array();
  if ( node == null ) node = document;
  if ( tag == null ) tag = '*';
  var els = node.getElementsByTagName(tag);
  var elsLen = els.length;
  var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
  for (i=0, j=0; i < elsLen ; i++) {
    if ( pattern.test(els[i].className) ) {
      classElements[j++] = els[i];
    }
  }
  return classElements;
}
출처 : http://gimmehide.tistory.com/228


'Dev Language > JAVASCRIPT' 카테고리의 다른 글

javascript JS 호출(import)  (0) 2015.06.02
javascript 쿠키 셋팅,추출  (0) 2015.06.02
JAVASCRIPT 날짜 사용하기  (0) 2015.04.07
JAVASCRIPT PARAM 값 가져오기  (0) 2015.03.19
PC, MOBILE, TABLET 디바이스타입 파악  (0) 2015.03.17
Posted by 타카스 류지
|
import java.util.Calendar;
import java.text.SimpleDateFormat;

Calendar  cal = Calendar.getInstance();  //날짜,시간
SimpleDateFormat format = new SimpleDateFormat("yyyyMMddhhmmss"); //포멧변환
String to_date = format.format(cal.getTime());
Posted by 타카스 류지
|
var curr_date = new Date(); 
var year = curr_date.getYear();		//년
var month = curr_date.getMonth();	//월
var day = curr_date.getDay();		//일
var hours = curr_date.getHours();	//시
var mins = curr_date.getMinutes();	//분
var secs = curr_date.getSeconds();	//초


'Dev Language > JAVASCRIPT' 카테고리의 다른 글

javascript 쿠키 셋팅,추출  (0) 2015.06.02
getElementsByClass  (0) 2015.04.21
JAVASCRIPT PARAM 값 가져오기  (0) 2015.03.19
PC, MOBILE, TABLET 디바이스타입 파악  (0) 2015.03.17
script 암호화 encrypted  (0) 2015.02.24
Posted by 타카스 류지
|

일반적인 파라미터로 가져오는 데이터는

 

예> ?aaa=111&bbb=222&ccc=333

request.getParameter("Key 값")

 

위와 같은 방식으로 가져올수있는데

 

HttpClient client = new HttpClient();

GetMethod method = new GetMethod("naver.com");

 

방식으로 데이터롤 리턴받을시에

post 방식으로 param 값이 넘어올때 데이터를 각 각 parameter 단위로

나누어서 사용할때가 있다 그럴때 사용하면된다.

 

#선언

 public String getRtnParams(String[] values,String paramName){
  String rtnval="";
  for( int x = 0; x < values.length; x++ )
  {
   String strName = values[x].split("=")[0];
   if(strName.toUpperCase().equals(paramName.toUpperCase())){
    rtnval = values[x].split("=")[1];
    break;
   }
  }
  return rtnval;
 }

 

 

#사용법

1차 & 단위로 분할

String[] values = new String(responseBody).split("&");

 

#호출

getRtnParams(values, "Key 값")

Posted by 타카스 류지
|
//선언
var Request = function(){
	this.getParameter = function(name){
		var rtnval='';
		var nowAddress = unescape(location.href);
		var parameters = (nowAddress.slice(nowAddress.indexOf('?')+1,nowAddress.length)).split('&');
		for(var i = 0 ; i< parameters.length ; i++){
			var varName = parameters[i].split('=')[0];
			if(varName.toUpperCase() == name.toUpperCase()){
				rtnval = parameters[i].split('=')[1];
				break;
			}
		}
		return rtnval;
	}
}

 
//사용법
var request = new Request();
request.getParameter('key 값')

'Dev Language > JAVASCRIPT' 카테고리의 다른 글

getElementsByClass  (0) 2015.04.21
JAVASCRIPT 날짜 사용하기  (0) 2015.04.07
PC, MOBILE, TABLET 디바이스타입 파악  (0) 2015.03.17
script 암호화 encrypted  (0) 2015.02.24
타이머  (0) 2015.02.24
Posted by 타카스 류지
|
  //디바이스타입 파악을 위한 변수
  var MOBILE_USER_AGENT_PREFIXES = [ "w3c ", "w3c-", "acs-", "alav",
     "alca", "amoi", "audi", "avan", "benq", "bird", "blac", "blaz", "brew",
     "cell", "cldc", "cmd-", "dang", "doco", "eric", "hipt", "htc_", "inno",
     "ipaq", "ipod", "jigs", "kddi", "keji", "leno", "lg-c", "lg-d", "lg-g",
     "lge-", "lg/u", "maui", "maxo", "midp", "mits", "mmef", "mobi", "mot-",
     "moto", "mwbp", "nec-", "newt", "noki", "palm", "pana", "pant", "phil",
     "play", "port", "prox", "qwap", "sage", "sams", "sany", "sch-", "sec-",
     "send", "seri", "sgh-", "shar", "sie-", "siem", "smal", "smar", "sony",
     "sph-", "symb", "t-mo", "teli", "tim-", "tosh", "tsm-", "upg1", "upsi",
     "vk-v", "voda", "wap-", "wapa", "wapi", "wapp", "wapr", "webc", "winw",
     "winw", "xda ", "xda-" ];
  var MOBILE_USER_AGENT_KEYWORDS = [ "blackberry", "webos", "ipod",
     "lge vx", "midp", "maemo", "mmp", "netfront", "hiptop", "nintendo DS",
     "novarra", "openweb", "opera mobi", "opera mini", "palm", "psp",
     "phone", "smartphone", "symbian", "up.browser", "up.link", "wap",
     "windows ce" ];
  var TABLET_USER_AGENT_KEYWORDS = [ "ipad", "playbook", "hp-tablet" ]; 
 
  //디바이스타입 파악
  // @returns NORMAL(PC), MOBILE, TABLET
  function getDeviceType() {
   var userAgent = navigator.userAgent.toLowerCase();
   if (userAgent != null && userAgent.length > 0) {
    var tUserAgent = userAgent.slice(0, 4);
     
    for ( var i = 0; i < MOBILE_USER_AGENT_PREFIXES.length; i++) {
     if (tUserAgent.indexOf(MOBILE_USER_AGENT_PREFIXES[i], 0) != -1) {
      return 'MOBILE';
     }
    }
   }
   
   for ( var i = 0; i < MOBILE_USER_AGENT_KEYWORDS.length; i++) {
    if (userAgent.indexOf(MOBILE_USER_AGENT_KEYWORDS[i], 0) != -1) {
     return 'MOBILE';
    }
   }
   
   for ( var ii = 0; ii < TABLET_USER_AGENT_KEYWORDS.length; ii++) {
    if (userAgent.indexOf(TABLET_USER_AGENT_KEYWORDS[ii], 0) != -1) {
     return 'TABLET';
    }
   }
   
   if (userAgent.indexOf("android") != -1 && userAgent.indexOf("mobile") != -1) {
    return 'MOBILE';
   } else if (userAgent.indexOf("android") != -1
     && userAgent.indexOf("mobile") == -1) {
    return 'TABLET';
   }
   return 'NORMAL';
  } 
   
  //Parameters를 parsing
  // @returns (JSON) parameters
 function getBroadCastParam(){
  
  var param ={};
  var varName = '';
  var value = '';
  var nowAddress = decodeURIComponent(location.href);
  var parameters = '';
   
  if(nowAddress.indexOf('?') != -1){
   parameters = (nowAddress.slice(nowAddress.indexOf('?')+1,nowAddress.length)).split('&');
   for(var i = 0 ; i < parameters.length ; i++)  {
    varName = parameters[i].split('=')[0];
    value = parameters[i].split('=')[1];
    param[varName] = value;
   }
  }
   
  param["deviceType"] = getDeviceType();
  param["proxyPage"] = "Y";
   
  return param;
 }
  
 
  
 /* ★사용법★*/
  var param = getBroadCastParam();
  if (param["deviceType"] != 'MOBILE') {
      param["deviceType"] = 'NORMAL';
  }

'Dev Language > JAVASCRIPT' 카테고리의 다른 글

JAVASCRIPT 날짜 사용하기  (0) 2015.04.07
JAVASCRIPT PARAM 값 가져오기  (0) 2015.03.19
script 암호화 encrypted  (0) 2015.02.24
타이머  (0) 2015.02.24
달팽이 for문  (0) 2015.02.24
Posted by 타카스 류지
|

 import javax.servlet.ServletContext;
 import javax.servlet.http.HttpServletRequest;
 import java.io.*;
 
 //클래스에 추가할 request
 HttpServletRequest request

 
 //사용하는 함수
 createFileHtml(request.getSession().getServletContext(), releasemanageVoHtml.getCntsId(), releasemanageVoHtml.getMenuId(),releasemanageVoHtml.getCntsSrc());


 /**
  * 배포 html 파일 생성
  */
 public void createFileHtml(ServletContext context,String cntsId,String menuId,String cntsSrc){
 
  //구분자 (/)
  String separatorSymbol = File.separator;
  //최상단 경로부터 하단경로
  String realFolder = context.getRealPath("html/cms");
  //파일명
  String fileName = cntsId + "_" + menuId + ".html";
  //개행문자 치환
  String sCntsSrc = cntsSrc;
  
  sCntsSrc=sCntsSrc.replaceAll("&amp;","&");
  sCntsSrc=sCntsSrc.replaceAll("&lt;","<");
  sCntsSrc=sCntsSrc.replaceAll("&gt;",">");
  //sCntsSrc=sCntsSrc.replaceAll("\n", "<br>");
  sCntsSrc=sCntsSrc.replaceAll(System.getProperty("line.separator"), "<br>");
  sCntsSrc=sCntsSrc.replaceAll("&nbsp;"," ");  //공백
  sCntsSrc=sCntsSrc.replaceAll("&quot;", "\""); //"(더블 쿼테이션)
   
  try {
   
         File targetFile = new File(realFolder + separatorSymbol + fileName);
        
         targetFile.createNewFile();
        
         BufferedWriter output = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(targetFile.getPath()), "UTF8"));
        
         output.write(sCntsSrc);
        
         output.close();
        
     } catch(UnsupportedEncodingException uee) {
         uee.printStackTrace();
     } catch(IOException ioe) {
         ioe.printStackTrace();
     }
 
 }

 

Posted by 타카스 류지
|

 

aes.js

 

 

위 첨부 파일 호출

 

//암호화
var encrypted = CryptoJS.AES.encrypt(oldCntsSrc, "000102030405060708090a0b0c0d0e0f");
//복호화
var decrypted = CryptoJS.AES.decrypt(encrypted, "000102030405060708090a0b0c0d0e0f");
//인코딩
var codeValue = decrypted.toString(CryptoJS.enc.Utf8)
//결과물
alert(codeValue);

'Dev Language > JAVASCRIPT' 카테고리의 다른 글

JAVASCRIPT PARAM 값 가져오기  (0) 2015.03.19
PC, MOBILE, TABLET 디바이스타입 파악  (0) 2015.03.17
타이머  (0) 2015.02.24
달팽이 for문  (0) 2015.02.24
숫자 야구  (0) 2015.02.24
Posted by 타카스 류지
|

타이머

Dev Language/JAVASCRIPT 2015. 2. 24. 11:01

 

타이머.html

 

남은시간:10분 00초

 

 

 

'Dev Language > JAVASCRIPT' 카테고리의 다른 글

PC, MOBILE, TABLET 디바이스타입 파악  (0) 2015.03.17
script 암호화 encrypted  (0) 2015.02.24
달팽이 for문  (0) 2015.02.24
숫자 야구  (0) 2015.02.24
기본 Text 에디터  (0) 2015.02.24
Posted by 타카스 류지
|

달팽이 FOR문.html

 

몇칸의 달팽이를 출력하시겠습니까? (예 : 25 = > 5*5 , [5] 입력)

 

 

 

'Dev Language > JAVASCRIPT' 카테고리의 다른 글

script 암호화 encrypted  (0) 2015.02.24
타이머  (0) 2015.02.24
숫자 야구  (0) 2015.02.24
기본 Text 에디터  (0) 2015.02.24
스톱워치  (0) 2015.02.24
Posted by 타카스 류지
|