浅析PHP的ASCII码转换类

 更新时间:2013年07月05日 13:02:29   作者:  
本篇文章是对PHP的ASCII码转换类进行了详细的分析介绍,需要的朋友参考下
复制代码 代码如下:

class ascii
{
function decode($str)
{
    preg_match_all( "/(d{2,5})/", $str,$a);
    $a = $a[0];
    foreach ($a as $dec)
    {
        if ($dec < 128)
        {
            $utf .= chr($dec);
        }
        else if ($dec < 2048)
       {
            $utf .= chr(192 + (($dec - ($dec % 64)) / 64));
            $utf .= chr(128 + ($dec % 64));
        }
        else
        {
            $utf .= chr(224 + (($dec - ($dec % 4096)) / 4096));
            $utf .= chr(128 + ((($dec % 4096) - ($dec % 64)) / 64));
            $utf .= chr(128 + ($dec % 64));
        }
    }
    return $utf;
}
function encode($c)
{
    $len = strlen($c);
    $a = 0;
    while ($a < $len)
    {
        $ud = 0;
        if (ord($c{$a}) >=0 && ord($c{$a})< =127)
        {
            $ud = ord($c{$a});
            $a += 1;
        }
        else if (ord($c{$a}) >=192 && ord($c{$a})< =223)
        {
            $ud = (ord($c{$a})-192)*64 + (ord($c{$a+1})-128);
            $a += 2;
        }
        else if (ord($c{$a}) >=224 && ord($c{$a})< =239)
        {
            $ud = (ord($c{$a})-224)*4096 + (ord($c{$a+1})-128)*64 + (ord($c{$a+2})-128);
            $a += 3;
        }
        else if (ord($c{$a}) >=240 && ord($c{$a})< =247)
        {
            $ud = (ord($c{$a})-240)*262144 + (ord($c{$a+1})-128)*4096 + (ord($c{$a+2})-128)*64 + (ord($c{$a+3})-128);
            $a += 4;
        }
        else if (ord($c{$a}) >=248 && ord($c{$a})< =251)
        {
            $ud = (ord($c{$a})-248)*16777216 + (ord($c{$a+1})-128)*262144 + (ord($c{$a+2})-128)*4096 + (ord($c{$a+3})-128)*64 + (ord($c{$a+4})-128);
            $a += 5;
        }
        else if (ord($c{$a}) >=252 && ord($c{$a})< =253)
        {
            $ud = (ord($c{$a})-252)*1073741824 + (ord($c{$a+1})-128)*16777216 + (ord($c{$a+2})-128)*262144 + (ord($c{$a+3})-128)*4096 + (ord($c{$a+4})-128)*64 + (ord($c{$a+5})-128);
            $a += 6;
        }
        else if (ord($c{$a}) >=254 && ord($c{$a})< =255)
        { //error
            $ud = false;
        }
        $scill .= "&#$ud;";
    }
    return $scill;
}

相关文章

  • PHP代码重构方法漫谈

    PHP代码重构方法漫谈

    这篇文章主要介绍了PHP代码重构方法,结合实例形式较为详细的分析了php代码重构的概念、原理、相关实现技巧与注意事项,需要的朋友可以参考下
    2018-04-04
  • 兼容firefox,chrome的网页灰度效果

    兼容firefox,chrome的网页灰度效果

    今天全天下网页都变灰了对吧,话说我对这种强制行为很不解。哀悼与否在于一个人的内心是否善良。表面上的让网页没有颜色,让视频网站不能搜索,究竟有多大意义呢?
    2011-08-08
  • 实例解析php的数据类型

    实例解析php的数据类型

    在本篇文章中我们给大家分享了关于php的数据类型相关知识点内容,有需要的朋友们参考学习下。
    2018-10-10
  • php使用preg_match()函数验证ip地址的方法

    php使用preg_match()函数验证ip地址的方法

    这篇文章主要介绍了php使用preg_match()函数验证ip地址的方法,涉及php针对数字及字符串的正则匹配操作相关技巧,需要的朋友可以参考下
    2017-01-01
  • PHP删除HTMl标签的实现代码

    PHP删除HTMl标签的实现代码

    本篇文章是对PHP删除HTMl标签的实现代码进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • php FPDF类库应用实现代码

    php FPDF类库应用实现代码

    php FPDF类库应用实现代码
    2009-03-03
  • 使用HMAC-SHA1签名方法详解

    使用HMAC-SHA1签名方法详解

    本篇文章是对使用HMAC-SHA1的签名方法进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • PHP实现返回JSON和XML的类分享

    PHP实现返回JSON和XML的类分享

    这篇文章主要给大家分享了一个使用PHP实现返回JSON和XML的类,非常实用,希望大家能够喜欢
    2015-01-01
  • php实现数组按指定KEY排序的方法

    php实现数组按指定KEY排序的方法

    这篇文章主要介绍了php实现数组按指定KEY排序的方法,涉及php操作数组排序的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • 解析php5配置使用pdo

    解析php5配置使用pdo

    本篇文章是对php5配置使用pdo的方法进行了详细的分析介绍,需要的朋友参考下
    2013-07-07

最新评论