浅析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利用单例模式实现日志处理类库
Feb 10 PHP
PHP5.5在windows安装使用memcached服务端的方法
Apr 16 PHP
ThinkPHP中U方法的使用浅析
Jun 13 PHP
php将HTML表格每行每列转为数组实现采集表格数据的方法
Apr 03 PHP
PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)
Sep 11 PHP
php实现购物车产品删除功能(2)
Jul 23 PHP
Windows下php+mysql5.7配置教程
May 16 PHP
PHP基于PDO实现的SQLite操作类【包含增删改查及事务等操作】
Jun 21 PHP
PHP中OpenSSL加密问题整理
Dec 14 PHP
thinkPHP框架动态配置用法实例分析
Jun 14 PHP
PHP array_shift()用法实例分析
Jan 07 PHP
PHP 实现base64编码文件上传出现问题详解
Sep 01 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 友好URL的实现(吐血推荐)
2008/10/04 PHP
PHP中VC6、VC9、TS、NTS版本的区别与用法详解
2013/10/26 PHP
php文件扩展名判断及获取文件扩展名的N种方法
2015/09/12 PHP
thinkPHP实现的联动菜单功能详解
2017/05/05 PHP
ASP.NET jQuery 实例4(复制TextBox的文本到本地剪贴板上)
2012/01/13 Javascript
JQuery 给元素绑定click事件多次执行的解决方法
2014/09/09 Javascript
Javascript的setTimeout()使用闭包特性时需要注意的问题
2014/09/23 Javascript
jquery 操作css样式、位置、尺寸方法汇总
2014/11/28 Javascript
jQuery插件PageSlide实现左右侧栏导航菜单
2015/04/12 Javascript
jQuery实现鼠标悬停背景翻转的黑色导航菜单代码
2015/09/14 Javascript
深入解析JavaScript编程中的this关键字使用
2015/11/09 Javascript
js实现人民币大写金额形式转换
2016/04/27 Javascript
javascript基础语法——全面理解变量和标识符
2016/06/02 Javascript
Js删除数组中某一项或几项的几种方法(推荐)
2016/07/27 Javascript
Angular开发者指南之入门介绍
2017/03/05 Javascript
使用ionic(选项卡栏tab) icon(图标) ionic上拉菜单(ActionSheet) 实现通讯录界面切换实例代码
2017/10/20 Javascript
[00:56]2014DOTA2国际邀请赛 DK、iG 赛前探访
2014/07/10 DOTA
[01:20]辉夜杯背景故事宣传片《辉夜传说》
2015/12/25 DOTA
[09:59]DOTA2-DPC中国联赛2月7日Recap集锦
2021/03/11 DOTA
在Docker上开始部署Python应用的教程
2015/04/17 Python
实例讲解python中的协程
2018/10/08 Python
python3调用windows dos命令的例子
2019/08/14 Python
使用django和vue进行数据交互的方法步骤
2019/11/11 Python
Python3中小括号()、中括号[]、花括号{}的区别详解
2020/11/15 Python
Python list和str互转的实现示例
2020/11/16 Python
python Scrapy爬虫框架的使用
2021/01/21 Python
利用CSS3实现炫酷的飞机起飞动画
2016/09/17 HTML / CSS
Space NK美国站:英国高端美妆护肤商城
2017/05/22 全球购物
美国最大的香水出口:FragranceX.com
2017/11/04 全球购物
Currentbody法国:健康与美容高科技产品
2020/08/16 全球购物
自我鉴定三原则
2014/01/13 职场文书
参观接待方案
2014/03/17 职场文书
党代会心得体会
2014/09/04 职场文书
事业单位个人查摆问题及整改措施
2014/10/28 职场文书
小班下学期幼儿评语
2014/12/30 职场文书
导游词之千岛湖
2019/09/23 职场文书