php自定义函数实现JS的escape的方法示例
本文实例讲述了php自定义函数实现JS的escape的方法。分享给大家供大家参考,具体如下:
//phpfunction
functionescape($string){
$n=$bn=$tn=0;
$output='';
$special="-_.+@/*0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
while($n<strlen($string)){
$ascii=ord($string[$n]);
if($ascii==9||$ascii==10||(32<=$ascii&&$ascii<=126)){
$tn=1;$n++;
}elseif(194<=$ascii&&$ascii<=223){
$tn=2;$n+=2;
}elseif(224<=$ascii&&$ascii<=239){
$tn=3;$n+=3;
}elseif(240<=$ascii&&$ascii<=247){
$tn=4;$n+=4;
}elseif(248<=$ascii&&$ascii<=251){
$tn=5;$n+=5;
}elseif($ascii==252||$ascii==253){
$tn=6;$n+=6;
}else{
$n++;
}
$singleStr=substr($string,$bn,$tn);
$charVal=bin2hex(iconv('utf-8','ucs-2',$singleStr));
if(base_convert($charVal,16,10)>0xff){
if(!preg_match("/win/i",PHP_OS))
$charVal=substr($charVal,2,2).substr($charVal,0,2);
$output.='%u'.$charVal;
}
else{
if(false!==strpos($special,$singleStr))
$output.=$singleStr;
else
$output.="%".dechex(ord($string[$bn]));
}
$bn=$n;
}
return$output;
}
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP编码与转码操作技巧汇总》、《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《php排序算法总结》、《PHP常用遍历算法与技巧总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《PHP数学运算技巧总结》、《php正则表达式用法总结》、《PHP运算与运算符用法总结》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。