PHP ASCII code conversion operation class
PHP ASCII Conversion class can convert Chinese to ASCII code. And it can be converted in batches, and a commonly used ASCII code restore character is added.
The specific code is as follows:
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 (+ ($dec% 64));
}
Else
{
$utf. = Chr (224 + (($dec-($dec% 4096))/4096);
$utf. = Chr ((($dec% 4096)-($dec% 64))/64);
$utf. = Chr (+ ($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;
}
}
?>