浅析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 相关文章推荐
实时抓取YAHOO股票报价的代码
Oct 09 PHP
PHP编程中字符串处理的5个技巧小结
Nov 13 PHP
php下判断数组中是否存在相同的值array_unique
Mar 25 PHP
php图片验证码代码
Mar 27 PHP
PHP 服务器配置(使用Apache及IIS两种方法)
Jun 01 PHP
PHP版QQ互联OAuth示例代码分享
Jul 05 PHP
PHP人民币金额转大写实例代码
Oct 02 PHP
yii2使用ajax返回json的实现方法
May 14 PHP
PHP7基于curl实现的上传图片功能
May 11 PHP
thinkPHP框架实现类似java过滤器的简单方法示例
Sep 05 PHP
laravel5.6实现数值转换
Oct 23 PHP
PhpStorm+xdebug+postman调试技巧分享
Sep 15 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强制类型转换,慎用!
2013/06/06 PHP
解析php中call_user_func_array的作用
2013/06/07 PHP
php5.2 Json不能正确处理中文、GB编码的解决方法
2014/03/28 PHP
PHP识别二维码的方法(php-zbarcode安装与使用)
2016/07/07 PHP
jQuery 打造动态下滑菜单实现说明
2010/04/15 Javascript
详谈 Jquery Ajax异步处理Json数据.
2011/09/09 Javascript
js中根据字数截取字符串,不能截断url
2012/01/12 Javascript
js跨域访问示例(客户端/服务端)
2014/05/19 Javascript
对Web开发中前端框架与前端类库的一些思考
2015/03/27 Javascript
javascript实现仿IE顶部的可关闭警告条
2015/05/05 Javascript
js实现简单锁屏功能实例
2015/05/27 Javascript
js跨域请求的5中解决方式
2015/07/02 Javascript
JavaScript原生xmlHttp与jquery的ajax方法json数据格式实例
2015/12/04 Javascript
Actionscript与javascript交互实例程序(修改)
2016/09/22 Javascript
浅谈vue首屏加载优化
2018/06/28 Javascript
如何用JavaScript实现功能齐全的单链表详解
2019/02/11 Javascript
nodejs log4js 使用详解
2019/05/31 NodeJs
微信小程序实现抖音播放效果的实例代码
2020/04/11 Javascript
[01:12:35]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
[13:16]INFAMOUS vs VGJ T BO3
2018/06/07 DOTA
Python 命令行非阻塞输入的小例子
2013/09/27 Python
Python简单实现两个任意字符串乘积的方法示例
2018/04/12 Python
python+unittest+requests实现接口自动化的方法
2018/11/29 Python
python实现创建新列表和新字典,并使元素及键值对全部变成小写
2019/01/15 Python
Python使用字典实现的简单记事本功能示例
2019/08/15 Python
Python3 读取Word文件方式
2020/02/13 Python
Html5 Geolocation获取地理位置信息实例
2016/12/09 HTML / CSS
什么是封装
2013/03/26 面试题
自我鉴定怎么写
2014/01/12 职场文书
2014年大学生职业规划书:未来不是梦,只要勇敢冲!
2014/09/22 职场文书
软件研发工程师岗位职责
2014/09/30 职场文书
高端收音机+蓝牙音箱,JBL TUNER FM带收音蓝牙音箱评测
2021/04/24 无线电
如何使用vue3打造一个物料库
2021/05/08 Vue.js
解读MySQL的客户端和服务端协议
2021/05/10 MySQL
Vue实现tab导航栏并支持左右滑动功能
2021/06/28 Vue.js
Python+Appium自动化测试的实战
2021/06/30 Python