PHP & Others

자바스크립트 escape unescape php 구현함수

페이지 정보

본문

<?
function toString($text){
   return iconv('UTF-16LE', 'UHC', chr(hexdec(substr($text[1], 2, 2))).chr(hexdec(substr($text[1], 0, 2))));
}

 

function toUnicode($word) {
   $word = iconv('UHC', 'UTF-16LE', $word);
   return strtoupper(dechex(ord(substr($word,1,1))).dechex(ord(substr($word,0,1))));
}

 

function unescape($text){
   return urldecode(preg_replace_callback('/%u([[:alnum:]]{4})/', 'toString', $text));
}

 

function escape($str) {
   $len = strlen($str);
   for($i=0,$s='';$i<$len;$i++) {
      $ck = substr($str,$i,1);
      $ascii = ord($ck);
      if($ascii > 127) $s .= '%u'.toUnicode(substr($str, $i++, 2));
      else $s .= (in_array($ascii, array(42, 43, 45, 46, 47, 64, 95))) ? $ck : '%'.strtoupper(dechex($ascii));
   }
   return $s;
}

 

//함수 테스트

$string = "%uC990%uAC70%uC6B4%20%uD558%uB8E8%uB418%uC138%uC694...%5E%5E/";
echo unescape($string);
echo "<br /><br />";

echo escape("즐거운 하루되세요...^^/");

?>

관련자료

등록된 댓글이 없습니다.
Today's proverb
만일 당신이 배를 만들고 싶다면 사람들을 불러모아 목재를 가져오게 하고 일을 지시하고 일감을 나눠 주는 등의 일을 하지 말아라. 대신 그들에게 저 넓고 끝없는 바다에 대한 동경심을 키워 줘라. (생텍쥐페리)