• 技术文章 >php教程 >php手册

    javascript unescape() escape() 字符编码解码函数

    2016-06-13 09:54:52原创279
    escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。

    语法
    escape(string)参数 描述
    string 必需。要被转义或编码的字符串。

    返回值
    已编码的 string 的副本。其中某些字符被替换成了十六进制的转义序列

    function php教程escape($str)
    {
    $sublen=strlen($str);
    $retrunstring="";
    for ($i=0;$i<$sublen;$i++)
    {
    if(ord($str[$i])>=127)
    {
    $tmps教程tring=bin2hex(iconv("gb2312","ucs-2",substr($str,$i,2)));
    //$tmpstring=substr($tmpstring,2,2).substr($tmpstring,0,2);window下可能要打开此项
    $retrunstring.="%u".$tmpstring;
    $i++;
    } else {
    $retrunstring.="%".dechex(ord($str[$i]));
    }
    }
    return $retrunstring;
    }


    unescape() 函数可对通过 escape() 编码的字符串进行解码。

    语法
    unescape(string)参数 描述
    string 必需。要解码或反转义的字符串。

    返回值
    string 被解码后的一个副本。

    说明
    该函数的工作原理是这样的:通过找到形式为 %xx 和 %uxxxx 的字符序列(x 表示十六进制的数字),用 unicode 字符 u00xx 和 uxxxx 替换这样的字符序列进行解码。

    php处理

    function unescape($str) {
    $str = rawurldecode($str);
    preg_match_all("/%u.{4}|&#x.{4};|&#d+;|.+/u",$str,$r);
    $ar = $r[0];
    foreach($ar as $k=>$v) {
    if(substr($v,0,2) == "%u")
    $ar[$k] = iconv("ucs-2","gbk",pack("h4",substr($v,-4)));
    elseif(substr($v,0,3) == "&#x")
    $ar[$k] = iconv("ucs-2","gbk",pack("h4",substr($v,3,-1)));
    elseif(substr($v,0,2) == "&#") {
    $ar[$k] = iconv("ucs-2","gbk",pack("n",substr($v,2,-1)));
    }
    }
    return join("",$ar);
    }

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:session Cannot send session cache limiter 错误提示 下一篇:php session_cache_limiter session_cache_expire等函数
    PHP编程就业班

    相关文章推荐

    • 动态网页技术PHP程序字符串处理函数• 探秘PHP 5的对象重载技术(1)• PHP学习之输出字符串(echo,print,printf,print_r和var_dump)• 实例(Smarty+FCKeditor新闻系统)• 无数据库的详细域名查询程序PHP版(1)

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网