浅析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 expects parameter 1 to be resource, array given 错误
Mar 23 PHP
php学习笔记之面向对象编程
Dec 29 PHP
PHP生成自适应大小的缩略图类及使用方法分享
May 06 PHP
phpmyadmin中禁止外网使用的方法
Nov 04 PHP
PHP实现的下载远程图片自定义函数分享
Jan 28 PHP
PHP入门教程之自定义函数用法详解(创建,调用,变量,参数,返回值等)
Sep 11 PHP
php生成0~1随机小数的方法(必看)
Apr 05 PHP
form自动提交实例讲解
Jul 10 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
Jul 22 PHP
PHP 使用二进制保存用户状态的实例
Jan 29 PHP
定位地理位置PHP判断员工打卡签到经纬度是否在打卡之内
May 23 PHP
浅谈PHP5.6 与 PHP7.0 区别
Oct 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
全国FM电台频率大全 - 2 天津市
2020/03/11 无线电
在PHP3中实现SESSION的功能(三)
2006/10/09 PHP
PHP 简单日历实现代码
2009/10/28 PHP
PHP 利用AJAX获取网页并输出的实现代码(Zjmainstay)
2012/08/31 PHP
Smarty最简单实现列表奇偶变色的方法
2015/07/01 PHP
php中get_magic_quotes_gpc()函数说明
2017/02/06 PHP
Nigma vs Liquid BO3 第二场2.13
2021/03/10 DOTA
完整显示当前日期和时间的JS代码
2007/09/17 Javascript
7个Javascript地图脚本整理
2009/10/20 Javascript
javascript开发技术大全 第4章 直接量与字符集
2011/07/03 Javascript
js中scrollHeight,scrollWidth,scrollLeft,scrolltop等差别介绍
2012/05/16 Javascript
location.href用法总结(最主要的)
2013/12/27 Javascript
javascript移动设备Web开发中对touch事件的封装实例
2014/06/05 Javascript
关于编写性能高效的javascript事件的技术
2014/11/28 Javascript
JavaScript计算两个日期时间段内日期的方法
2015/03/16 Javascript
JavaScript在网页中画圆的函数arc使用方法
2015/11/13 Javascript
vue滑动吸顶及锚点定位的示例代码
2020/05/10 Javascript
Vue props中Object和Array设置默认值操作
2020/07/30 Javascript
在Python3中使用asyncio库进行快速数据抓取的教程
2015/04/02 Python
简单介绍Python中的JSON使用
2015/04/28 Python
Python SqlAlchemy动态添加数据表字段实例解析
2018/02/07 Python
Python中XlsxWriter模块简介与用法分析
2018/04/24 Python
使用python实现哈希表、字典、集合操作
2019/12/22 Python
python实现启动一个外部程序,并且不阻塞当前进程
2020/12/05 Python
如何用 Python 制作 GitHub 消息助手
2021/02/20 Python
美体小铺波兰官方网站:The Body Shop波兰
2019/09/03 全球购物
VLAN和VPN有什么区别?分别实现在OSI的第几层?
2014/12/23 面试题
《九寨沟》教学反思
2014/04/08 职场文书
大学专科自荐信
2014/06/17 职场文书
学校会议通知范文
2015/04/15 职场文书
2015年学校保卫部工作总结
2015/05/11 职场文书
婚庆司仪开场白
2015/05/29 职场文书
运动会加油稿50字
2015/07/21 职场文书
四十年同学聚会致辞
2015/07/28 职场文书
2015国庆节感想
2015/08/04 职场文书
浅谈Node的内存泄露问题
2022/05/06 NodeJs