加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

浅析PHP的ASCII码转换类

发布时间:2020-12-13 06:30:23 所属栏目:PHP教程 来源:网络整理
导读:div class="codetitle" a style="CURSOR: pointer" data="25320" class="copybut" id="copybut25320" onclick="doCopy('code25320')" 代码如下: div class="codebody" id="code25320" class ascii { function decode($str) { preg_match_all( "/(d{2,5})/",$

<div class="codetitle"><a style="CURSOR: pointer" data="25320" class="copybut" id="copybut25320" onclick="doCopy('code25320')"> 代码如下:<div class="codebody" id="code25320">
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;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读