浅析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脚本
Nov 26 PHP
PHP加速 eAccelerator配置和使用指南
Jun 05 PHP
PHP写UltraEdit插件脚本实现方法
Dec 26 PHP
初步介绍PHP扩展开发经验分享
Sep 06 PHP
php将HTML表格每行每列转为数组实现采集表格数据的方法
Apr 03 PHP
PHP微信开发之查询微信精选文章
Jun 23 PHP
thinkphp3.2嵌入百度编辑器ueditor的实例代码
Jul 13 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
Dec 21 PHP
使用PHPExcel导出Excel表
Sep 08 PHP
laravel-admin 管理平台获取当前登陆用户信息的例子
Oct 08 PHP
基于laravel where的高级使用方法
Oct 10 PHP
php数组指针函数功能及用法示例
Feb 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
获得Google PR值的PHP代码
2007/01/28 PHP
使用PHP遍历文件目录与清除目录中文件的实现详解
2013/06/24 PHP
php统计时间和内存使用情况示例分享
2014/03/13 PHP
详解php的socket通信
2015/08/11 PHP
windows下的WAMP环境搭建图文教程(推荐)
2017/07/27 PHP
PHP中上传文件打印错误错误类型分析
2019/04/14 PHP
jquery事件机制扩展插件 jquery鼠标右键事件。
2011/12/26 Javascript
location.href用法总结(最主要的)
2013/12/27 Javascript
Javascript基础知识(二)事件
2014/09/29 Javascript
Angular1.x自定义指令实例详解
2017/03/01 Javascript
Angular 4.X开发实践中的踩坑小结
2017/07/04 Javascript
解析vue路由异步组件和懒加载案例
2018/06/08 Javascript
JavaScript实现的DOM绘制柱状图效果示例
2018/08/08 Javascript
vuedraggable+element ui实现页面控件拖拽排序效果
2020/07/29 Javascript
解决vue跨域axios异步通信问题
2019/04/17 Javascript
Python collections模块实例讲解
2014/04/07 Python
python使用htmllib分析网页内容的方法
2015/05/08 Python
python数据结构之线性表的顺序存储结构
2018/09/28 Python
python单例模式原理与创建方法实例分析
2019/10/26 Python
Python3 Click模块的使用方法详解
2020/02/12 Python
Pytorch转tflite方式
2020/05/25 Python
纯css3无js实现的Android Logo(有简单动画)
2013/01/21 HTML / CSS
安纳塔拉酒店度假村及水疗官方网站:Anantara Hotel
2016/08/25 全球购物
美国著名珠宝品牌之一:Jared The Galleria Of Jewelry
2016/10/01 全球购物
护理个人求职信范文
2014/01/08 职场文书
小学生演讲稿
2014/01/12 职场文书
《赠汪伦》教学反思
2014/04/12 职场文书
人力资源管理专业毕业生自荐书
2014/05/25 职场文书
法人委托书范本
2014/09/15 职场文书
2014年餐厅服务员工作总结
2014/11/18 职场文书
2015年班组工作总结
2015/04/20 职场文书
2015年网络管理员工作总结
2015/05/21 职场文书
毕业生自我鉴定范文
2019/05/13 职场文书
《孙子兵法》:欲成大事者,需读懂这些致胜策略
2019/08/23 职场文书
golang 如何用反射reflect操作结构体
2021/04/28 Golang
React + Threejs + Swiper 实现全景图效果的完整代码
2021/06/28 Javascript