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
위대한 일을 성취하는 사람은 위대한 고통을 느끼는 사람이다. 고통의 해결은 고통의 감지에서 시작되고, 위대한 고통은 그것을 해결함으로써 인간의 자부심을 드높일 수 있는 위대한 문제이기 때문이다. 따라서 우리는 역설적으로 이렇게 말할 수 있다. 위대한 고통 때문에 아파하는 사람은 축복을 받았다고…. (김광수의 《둥근 사각형의 꿈》중에서)