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

 更新时间:2016年07月07日 10:20:18   作者:HTL  
这篇文章主要介绍了php自定义函数实现JS的escape的方法,结合完整实例形式分析了php实现JS的escape功能函数的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了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;
}

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP编码与转码操作技巧汇总》、《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《php排序算法总结》、《PHP常用遍历算法与技巧总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《PHP数学运算技巧总结》、《php正则表达式用法总结》、《PHP运算与运算符用法总结》及《php常见数据库操作技巧汇总

希望本文所述对大家PHP程序设计有所帮助。

相关文章

  • php实现购物车功能(上)

    php实现购物车功能(上)

    这篇文章主要介绍了php实现购物车功能的全部代码,提出了需求分析、解决方案、数据库的创建,帮助大家轻轻松松实现购物车功能,感兴趣的小伙伴们可以参考一下
    2016-01-01
  • C#静态方法与非静态方法实例分析

    C#静态方法与非静态方法实例分析

    这篇文章主要介绍了C#静态方法与非静态方法,重点讲述了静态方法的实际应用,有助于进一步加深对C#程序设计的理解,需要的朋友可以参考下
    2014-09-09
  • PHP对象转换为数组函数(递归方法)

    PHP对象转换为数组函数(递归方法)

    本方法主要是应用于迭代对象。我应用的地方是simplexml中的simplexml_load_string()上,因为返回的全是对象,如果提取数据比较麻烦,所以应用了下面的函数
    2012-02-02
  • php实现Session存储到Redis

    php实现Session存储到Redis

    这篇文章主要介绍了php实现Session存储到Redis的方法,php Session可以保存到文本或者内存、还有数据库,本文讲的是存到Redis的方法,
    2015-11-11
  • PHP实现文件上传和多文件上传

    PHP实现文件上传和多文件上传

    这篇文章主要介绍了PHP实现文件上传和多文件上传的相关资料,还为大家分享了解决如何修改PHP上传文件的大小限制问题的方法,需要的朋友可以参考下
    2015-12-12
  • PHP使用Redis替代文件存储Session的方法

    PHP使用Redis替代文件存储Session的方法

    这篇文章主要介绍了PHP使用Redis替代文件存储Session的方法,结合实例形式较为详细的分析了Session的基本操作方法及使用Redis存储session的相关技巧,需要的朋友可以参考下
    2017-02-02
  • PHP响应post请求上传文件的方法

    PHP响应post请求上传文件的方法

    这篇文章主要介绍了PHP响应post请求上传文件的方法,涉及php针对post传输数据处理的相关技巧,需要的朋友可以参考下
    2015-12-12
  • PHP使用imap_open实现读取QQ邮箱

    PHP使用imap_open实现读取QQ邮箱

    这篇文章主要为大家详细介绍了PHP如何使用imap_open实现读取QQ邮箱功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-02-02
  • php以post形式发送xml的方法

    php以post形式发送xml的方法

    这篇文章主要介绍了php以post形式发送xml的方法,包括了curl与fsockopen两种方法,具有不错的参考价值,需要的朋友可以参考下
    2014-11-11
  • PHP实现过滤掉非汉字字符只保留中文字符

    PHP实现过滤掉非汉字字符只保留中文字符

    这篇文章主要介绍了PHP实现过滤掉非汉字字符只保留中文字符,本文直接给出实现代码,需要的朋友可以参考下
    2015-06-06

最新评论