博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Php实现Js的escape方法
阅读量:6832 次
发布时间:2019-06-26

本文共 1967 字,大约阅读时间需要 6 分钟。

//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;}

 

转载地址:http://bcnkl.baihongyu.com/

你可能感兴趣的文章
函数嵌套(c++)
查看>>
MySQL线程共享内存参数
查看>>
线上部署链路聚合bonding
查看>>
mysqlsla日志分析工具
查看>>
linux 制作BT种子并获取BT种子信息
查看>>
Building C Projects
查看>>
iOS:XCode 4.2开始Objective-C支持ARC
查看>>
如何解决笔记本键盘的虚拟键盘问题
查看>>
dabo aui editra 三个软件(框架or应用)之间有关系
查看>>
brew使用
查看>>
Swift语言快速入门
查看>>
学LIUNX的常用英语补习
查看>>
单点登录CAS解决方案<一>:纯净CAS-Server
查看>>
linux 下配置mysql主从同步的步骤
查看>>
CodeIgniter pdo与postgres原生驱动对bool类型取值是不同的
查看>>
Mysql 数据库表区分大小写问题
查看>>
Linux中命令选项及参数简介
查看>>
什么是openstack的metadata
查看>>
面向海量数据的高并发高可用分层系统架构设计
查看>>
五、JAVA基础--异常、断言、日志
查看>>