php教程

超轻量级php框架startmvc

php自定义函数实现JS的escape的方法示例

更新时间:2020-03-09 17:20:50 作者:startmvc
本文实例讲述了php自定义函数实现JS的escape的方法。分享给大家供大家参考,具体如下://ph

本文实例讲述了php自定义函数实现JS的escape的方法。分享给大家供大家参考,具体如下:


//php function
function escape($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;
}