浅析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自动生成月历代码
Oct 09 PHP
php中截取字符串支持utf-8
Jan 18 PHP
php str_replace的替换漏洞
Mar 15 PHP
PHP 类型转换函数intval
Jun 20 PHP
PHP字符串 ==比较运算符的副作用
Oct 21 PHP
用PHP和Shell写Hadoop的MapReduce程序
Apr 15 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十三)
Jun 26 PHP
使用PHP Socket 编程模拟Http post和get请求
Nov 25 PHP
php可应用于面包屑导航的迭代寻找家谱树实现方法
Feb 02 PHP
PHP网站开发中常用的8个小技巧
Feb 13 PHP
PHP调用API接口实现天气查询功能的示例
Sep 21 PHP
PHP调用接口API封装的例子
Oct 11 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
php中使用接口实现工厂设计模式的代码
2012/06/17 PHP
thinkphp实现163、QQ邮箱收发邮件的方法
2015/12/18 PHP
JavaScript 指导方针
2007/04/05 Javascript
json简单介绍
2008/06/10 Javascript
SlideView 图片滑动(扩展/收缩)展示效果
2010/08/01 Javascript
jquery json 实例代码
2010/12/02 Javascript
图片在浏览器中底部对齐 解决方法之一
2011/11/30 Javascript
框架页面高度自动刷新的Javascript脚本
2013/11/01 Javascript
jQuery实现TAB选项卡切换特效简单演示
2016/03/04 Javascript
Bootstrap每天必学之按钮(Button)插件
2016/04/25 Javascript
原生Javascript插件开发实践
2017/01/09 Javascript
JS库之Waypoints的用法详解
2017/09/13 Javascript
初学者AngularJS的环境搭建过程
2017/10/27 Javascript
JS计算两个时间相差分钟数的方法示例
2018/01/10 Javascript
解决Webpack 热部署检测不到文件变化的问题
2018/02/22 Javascript
深入理解NodeJS 多进程和集群
2018/10/17 NodeJs
解决Vue keep-alive 调用 $destory() 页面不再被缓存的情况
2020/10/30 Javascript
python3序列化与反序列化用法实例
2015/05/26 Python
python简单实现旋转图片的方法
2015/05/30 Python
python 读取文本文件的行数据,文件.splitlines()的方法
2018/07/12 Python
pyqt 多窗口之间的相互调用方法
2019/06/19 Python
Python使用itchat模块实现群聊转发,自动回复功能示例
2019/08/26 Python
实现Python3数组旋转的3种算法实例
2020/09/16 Python
基于python实现坦克大战游戏
2020/10/27 Python
异常和异常类的概念
2014/09/12 面试题
优秀学生干部个人事迹材料
2014/06/02 职场文书
技术负责人任命书
2014/06/05 职场文书
ktv好的活动方案
2014/08/17 职场文书
我的中国梦演讲稿初中篇
2014/08/19 职场文书
带香烟到学校抽的检讨书
2014/09/25 职场文书
教师作风整改措施思想汇报
2014/10/12 职场文书
2016新年慰问信范文
2015/03/25 职场文书
情侣之间的道歉短信
2015/05/12 职场文书
2015年高一班主任工作总结
2015/05/13 职场文书
三十年同学聚会致辞
2015/07/28 职场文书
Mysql Show Profile
2021/04/05 MySQL