PHP 한자 변환은 항상 골치 아픈 일이었습니다
이 클래스에는 "[dec];", "[hex];", "%u라는 4개의 필터가 내장되어 있습니다. [hex ]","utf8 변환"
사용자가 사용하기 편리하며 필터링을 사용자 정의하여 원하는 작업을 수행할 수도 있습니다
qswhU.php 여기에서 다운로드
http ://www.blueidea.com/user/qswh/qswhU.zip
클래스 qswhU{
var $qswhData;
함수 qswhU($filename="qswhU.php"){
$this-> ;qswhData=file($filename);
}
함수 디코드($str,$pattern=0){
$arr=array("/(w+ );/iU" ,"/((%ww)+)/i","/%u(w{4,5})/iU");
if(is_integer($pattern)){
if($pattern> ;=count($arr))die("잘못된 함수");
$pattern=$arr[$pattern];
}
return preg_replace_callback($pattern,array($ this,"u2gb" ),$str);
}
함수 u2gb($arr){
/******(qiushuiwuhen 2002-8-15)******/
$ret="";$str =$arr[1 ];
if(preg_match_all("/%w{2}/",$str,$matches)){
for($i=0;$i
$arr=array("f0","e0","c0 ","0" );
for($j=0;$j
$ chr=hexdec(substr ($matches[0][$i],1))-hexdec($arr[$j]);
while(++$j
if(strlen($str)= =4){
$p=hexdec(substr($str,0,2))-0x4d;
$q=hexdec(substr($str,2))*4;
$ret. =chr(hexdec( substr($this->qswhData[$p],$q,2)));
$ret.=chr(hexdec(substr($this->qswhData[$p], $q+2, 2)));
}else
$ret.=chr(hexdec($str));
}
}
else{
if(strtolower ($str[0 ])=="x")
$str=substr($str,1);
else
if(strlen($str)!=4)$str=dechex( $str);
if(strlen($str)==4){
$p=hexdec(substr($str,0,2))-0x4d;
$q=hexdec (substr($str ,2))*4;
$ret.=chr(hexdec(substr($this->qswhData[$p],$q,2)));
$ret. =chr(hexdec( substr($this->qswhData[$p],$q+2,2)));
}else
$ret.=chr(hexdec($str));
}
return $ret;
}
}
사용 예
$qswh=new qswhU("qswhU. php");/ /파일 이름이 qswhU.php인 경우 매개 변수를 생략할 수 있습니다.
echo "
효과는 다음과 같습니다.
매개변수 없음(기본 필터는 [num];):
중국어 Abc
중국어 Abc
내장 필터 호출(UTF 트랜스코딩): 중국어!"#$%&'()*+,/:;<=>?@[]^`{|}~%Abc
내장 필터 호출 unescape(%u[num ]): 중국어 Abc
사용자 정의 필터링([x+num]): 중국어 Abc