浅析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 相关文章推荐
PHP4实际应用经验篇(5)
Oct 09 PHP
PHP CKEditor 上传图片实现代码
Nov 06 PHP
PHP无限分类代码,支持数组格式化、直接输出菜单两种方式
May 18 PHP
php中get_headers函数的作用及用法的详细介绍
Apr 27 PHP
PHP网站建设的流程与步骤分享
Sep 25 PHP
ThinkPHP的常用配置选项汇总
Mar 24 PHP
php socket通信简单实现
Nov 18 PHP
PHP实现的简单在线计算器功能示例
Aug 02 PHP
php实现单笔转账到支付宝功能
Oct 09 PHP
PDO::errorCode讲解
Jan 28 PHP
PHP基于timestamp和nonce实现的防止重放攻击方案分析
Jul 26 PHP
PHP 实现重载
Mar 09 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报错configure error Cannot find libmysqlclient under usr的解决方法
2014/06/27 PHP
Windows平台实现PHP连接SQL Server2008的方法
2017/07/26 PHP
用js实现控制内容的向上向下滚动效果
2007/06/26 Javascript
select组合框option的捕捉实例代码
2008/09/30 Javascript
Prototype Template对象 学习
2009/07/19 Javascript
jQuery 改变CSS样式基础代码
2010/02/11 Javascript
YUI模块开发原理详解
2013/11/18 Javascript
jquery实现无限分级横向导航菜单的方法
2015/03/12 Javascript
WordPress中利用AJAX技术进行评论提交的实现示例
2016/01/12 Javascript
Bootstrap3学习笔记(三)之表格
2016/05/20 Javascript
JS实现的数字格式化功能示例
2017/02/10 Javascript
jQuery实现文章图片弹出放大效果
2017/04/06 jQuery
原生js FileReader对象实现图片上传本地预览效果
2020/03/27 Javascript
想用好React的你必须要知道的一些事情
2017/07/24 Javascript
javascript面向对象三大特征之继承实例详解
2019/07/24 Javascript
node.js 使用 net 模块模拟 websocket 握手进行数据传递操作示例
2020/02/11 Javascript
vue实现前端列表多条件筛选
2020/10/26 Javascript
[01:15:29]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第三局
2016/03/04 DOTA
Python函数返回值实例分析
2015/06/08 Python
Python实现比较两个列表(list)范围
2015/06/12 Python
简单了解什么是神经网络
2017/12/23 Python
对python for 文件指定行读写操作详解
2018/12/29 Python
使用pandas实现连续数据的离散化处理方式(分箱操作)
2019/11/22 Python
Python 实现打印单词的菱形字符图案
2020/04/12 Python
keras读取训练好的模型参数并把参数赋值给其它模型详解
2020/06/15 Python
Python使用lambda抛出异常实现方法解析
2020/08/20 Python
德国亚洲食品网上商店:asiafoodland.de
2019/12/28 全球购物
美国婴儿和儿童服装购物网站:PatPat
2020/10/01 全球购物
30年同学聚会感言
2014/01/30 职场文书
法定代表人授权委托书
2014/09/19 职场文书
2014年保卫部工作总结
2014/11/21 职场文书
期末复习计划
2015/01/19 职场文书
美丽心灵观后感
2015/06/01 职场文书
浅谈Nginx 中的两种限流方式
2021/03/31 Servers
如何用python插入独创性声明
2021/03/31 Python
利用JavaScript写一个简单计算器
2021/11/27 Javascript