浅析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 相关文章推荐
dedecms中显示数字验证码的修改方法
Mar 21 PHP
php cli 方式 在crotab中运行解决
Feb 08 PHP
mysql下创建字段并设置主键的php代码
May 16 PHP
php 面向对象的一个例子
Apr 12 PHP
Drupal7 form表单二次开发要点与实例
Mar 02 PHP
Yii使用ajax验证显示错误messagebox的解决方法
Dec 03 PHP
Laravel 5 框架入门(一)
Apr 09 PHP
PHP连接Nginx服务器并解析Nginx日志的方法
Aug 16 PHP
php获取ip及网址的简单方法(必看)
Apr 01 PHP
使用Zttp简化Guzzle 调用
Jul 02 PHP
thinkphp中U方法按路由规则生成url的方法
Mar 12 PHP
浅谈如何提高PHP代码的质量
May 28 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中使用GD库绘制折线图 折线统计图的绘制方法
2015/11/09 PHP
PHP序列化操作方法分析
2016/09/28 PHP
EXTJS内使用ACTIVEX控件引起崩溃问题的解决方法
2010/03/31 Javascript
JavaScript随机排序(随即出牌)
2010/09/17 Javascript
Package.js  现代化的JavaScript项目make工具
2012/05/23 Javascript
JS高级调试技巧:捕获和分析 JavaScript Error详解
2014/03/16 Javascript
一个网页标题title的闪动提示效果实现思路
2014/03/22 Javascript
js获取input长度并根据页面宽度设置其大小及居中对齐
2014/08/22 Javascript
jQuery之DOM对象和jQuery对象的转换与区别分析
2015/01/08 Javascript
jQuery simplePage+AJAX plus分页插件用法实例
2016/02/17 Javascript
js组件SlotMachine实现图片切换效果制作抽奖系统
2016/04/17 Javascript
深入理解JavaScript单体内置对象
2016/06/06 Javascript
jQuery1.9+中删除了live以后的替代方法
2016/06/17 Javascript
Jquery EasyUI Datagrid右键菜单实现方法
2016/12/30 Javascript
微信小程序 在线支付功能的实现
2017/03/14 Javascript
javascript写一个ajax自动拦截并下载数据代码实例
2019/09/07 Javascript
vue实现在线翻译功能
2019/09/27 Javascript
js前端对于大量数据的展示方式及处理方法
2020/12/02 Javascript
ES5和ES6中类的区别总结
2020/12/21 Javascript
Python交换变量
2008/09/06 Python
Python Property属性的2种用法
2015/06/21 Python
JPype实现在python中调用JAVA的实例
2017/07/19 Python
python爬虫_实现校园网自动重连脚本的教程
2018/04/22 Python
Python实现抓取HTML网页并以PDF文件形式保存的方法
2018/05/08 Python
Python键盘输入转换为列表的实例
2018/06/23 Python
Flask框架响应、调度方法和蓝图操作实例分析
2018/07/24 Python
keras输出预测值和真实值方式
2020/06/27 Python
德国亚洲食品网上商店:asiafoodland.de
2019/12/28 全球购物
莫斯科制造商的廉价皮大衣:Fursk
2020/06/09 全球购物
机电一体化自荐信
2013/12/10 职场文书
两年的个人工作自我评价
2014/01/10 职场文书
银行办公室岗位职责
2014/03/10 职场文书
售后服务承诺书
2014/03/26 职场文书
二手车转让协议书
2015/01/29 职场文书
2016优秀护士先进个人事迹材料
2016/02/25 职场文书
剑指Offer之Java算法习题精讲二叉树专项训练
2022/03/21 Java/Android