浅析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 相关文章推荐
打造计数器DIY三步曲(上)
Oct 09 PHP
ezSQL PHP数据库操作类库
May 16 PHP
Discuz Uchome ajaxpost小技巧
Jan 04 PHP
php在程序中将网页生成word文档并提供下载的代码
Oct 09 PHP
php中最简单的字符串匹配算法
Dec 16 PHP
PHP中的命名空间相关概念浅析
Jan 22 PHP
php单文件版在线代码编辑器
Mar 12 PHP
PHP安装memcached扩展笔记
May 28 PHP
PHP批量去除BOM头代码分享
Jun 26 PHP
OAuth认证协议中的HMACSHA1加密算法(实例)
Oct 25 PHP
PHP中localeconv()函数的用法
Mar 26 PHP
php时间戳转换代码详解
Aug 04 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 字符截取 解决中文的截取问题,不用mb系列
2009/09/29 PHP
PHP字符串长度计算 - strlen()函数使用介绍
2013/10/15 PHP
php过滤HTML标签、属性等正则表达式汇总
2014/09/22 PHP
使用PHP json_decode可能遇到的坑与解决方法
2017/08/03 PHP
tp5(thinkPHP5)框架实现多数据库查询的方法
2019/01/10 PHP
php生成HTML文件的类方法
2019/10/11 PHP
jquery获取input的value问题说明
2010/08/19 Javascript
JavaScript随机排序(随即出牌)
2010/09/17 Javascript
js动态添加onclick事件可传参数与不传参数
2014/07/29 Javascript
jQuery插件开发汇总
2016/05/15 Javascript
Vuejs第十二篇之动态组件全面解析
2016/09/09 Javascript
JS判断来路是否是百度等搜索索引进行弹窗或自动跳转的实现代码
2016/10/09 Javascript
详解JS: reduce方法实现 webpack多文件入口
2017/02/14 Javascript
angularJS之$http:与服务器交互示例
2017/03/17 Javascript
AngularJS实现select的ng-options功能示例
2017/07/12 Javascript
快速解决vue-cli在ie9+中无效的问题
2018/09/04 Javascript
详解vuex之store拆分即多模块状态管理(modules)篇
2018/11/13 Javascript
Openlayers+EasyUI Tree动态实现图层控制
2020/09/28 Javascript
[34:08]2018DOTA2亚洲邀请赛3月29日 小组赛B组 VP VS EG
2018/03/30 DOTA
详解Django框架中用context来解析模板的方法
2015/07/20 Python
django 2.0更新的10条注意事项总结
2018/01/05 Python
和孩子一起学习python之变量命名规则
2018/05/27 Python
python中ASCII码和字符的转换方法
2018/07/09 Python
python实现将视频按帧读取到自定义目录
2019/12/10 Python
Python求解排列中的逆序数个数实例
2020/05/03 Python
python编写一个会算账的脚本的示例代码
2020/06/02 Python
韩国邮政旗下生鲜食品网上超市:epost
2016/08/27 全球购物
超市实习总结自我鉴定
2013/09/19 职场文书
通用求职信范文模板分享
2013/12/27 职场文书
内衣营销方案
2014/03/15 职场文书
医院我们的节日活动实施方案
2014/08/22 职场文书
医院领导班子四风问题对照检查材料
2014/10/26 职场文书
2015年文秘个人工作总结
2015/10/14 职场文书
python基于机器学习预测股票交易信号
2021/05/25 Python
深入理解redis中multi与pipeline
2021/06/02 Redis
Oracle 触发器trigger使用案例
2022/02/24 Oracle