浅析PHP的ASCII码转换类


Posted in PHP onJuly 05, 2013
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 COOKIE设置为浏览器进程
Jun 21 PHP
为PHP初学者的8点有效建议
Nov 20 PHP
使用JSON实现数据的跨域传输的php代码
Dec 20 PHP
php排序算法(冒泡排序,快速排序)
Oct 09 PHP
codeigniter上传图片不能正确识别图片类型问题解决方法
Jul 25 PHP
PHP查询快递信息的方法
Mar 07 PHP
PHP爬虫之百万级别知乎用户数据爬取与分析
Jan 22 PHP
php mailer类调用远程SMTP服务器发送邮件实现方法
Mar 04 PHP
总结一些PHP中好用但又容易忽略的小知识
Jun 02 PHP
PHP实现验证码校验功能
Nov 16 PHP
PHP使用函数用法详解
Sep 30 PHP
PHP字符串与数组处理函数用法小结
Jan 07 PHP
PHP仿博客园 个人博客(1) 数据库与界面设计
Jul 05 #PHP
PHP cdata 处理(详细介绍)
Jul 05 #PHP
PHP的基本常识小结
Jul 05 #PHP
深入解析fsockopen与pfsockopen的区别
Jul 05 #PHP
在windows平台上构建自己的PHP实现方法(仅适用于php5.2)
Jul 05 #PHP
php中如何同时使用session和cookie来保存用户登录信息
Jul 05 #PHP
php记录代码执行时间(实现代码)
Jul 05 #PHP
You might like
采用header定义为文件然后readfile下载(隐藏下载地址)
2014/01/31 PHP
[原创]后缀就扩展名为js的文件是什么文件
2007/12/06 Javascript
ext中store.load跟store.reload的区别示例介绍
2014/06/17 Javascript
js跨域问题浅析及解决方法优缺点对比
2014/11/08 Javascript
详解JavaScript UTC时间转换方法
2016/01/07 Javascript
详解Node.js包的工程目录与NPM包管理器的使用
2016/02/16 Javascript
AngularJS实现网站换肤实例
2021/02/19 Javascript
简单谈谈React中的路由系统
2017/07/25 Javascript
Vuex中mutations与actions的区别详解
2018/03/01 Javascript
Vue项目添加动态浏览器头部title的方法
2018/07/11 Javascript
深入解读Node.js中的koa源码
2019/06/17 Javascript
微信小程序button标签open-type属性原理解析
2020/01/21 Javascript
[00:35]DOTA2上海特级锦标赛 MVP.Phx战队宣传片
2016/03/04 DOTA
[01:05]DOTA2完美大师赛趣味视频之选手教你打职业
2017/11/23 DOTA
简单的Python2.7编程初学经验总结
2015/04/01 Python
在Linux命令行终端中使用python的简单方法(推荐)
2017/01/23 Python
python 出现SyntaxError: non-keyword arg after keyword arg错误解决办法
2017/02/14 Python
如何高效使用Python字典的方法详解
2017/08/31 Python
python实现对excel进行数据剔除操作实例
2017/12/07 Python
分分钟入门python语言
2018/03/20 Python
python 图像平移和旋转的实例
2019/01/10 Python
python 判断字符串中是否含有汉字或非汉字的实例
2019/07/15 Python
Python做图像处理及视频音频文件分离和合成功能
2020/11/24 Python
CSS3轻松实现清新 Loading 效果的简单实例
2016/06/06 HTML / CSS
html5 视频播放解决方案
2016/11/06 HTML / CSS
Senreve官网:美国旧金山的奢侈手袋品牌
2019/03/21 全球购物
Emma Bridgewater官网:英国餐具制造商
2019/11/24 全球购物
Java基础知识面试要点
2016/07/29 面试题
大学活动邀请函
2014/01/28 职场文书
行政主管职责范本
2014/03/07 职场文书
园林设计专业毕业生求职信
2014/03/23 职场文书
餐饮周年庆活动方案
2014/08/14 职场文书
综合管理员岗位职责
2015/02/11 职场文书
2015年教师党员自我评价材料
2015/03/04 职场文书
法定代表人身份证明书
2015/06/18 职场文书
HTML 里 img 元素的 src 和 srcset 属性的区别详解
2023/05/21 HTML / CSS