php+asc+转字符,php实现字符串(中文汉字)与ASCII互转-PHP实现ASCII码与字符串相互转换的方法-吾爱编程网...

今天在做一个网站的功能的时候需要实现字符串(中文汉字)与ASCII互转,这也是一个经常使用的功能,接下来吾爱编程为大家分享一下代码,有需要的小伙伴可以参考一下:

1、将字符串转ASCII:

/*

* 转换为ascii码

* $str :字符串或者中文

*/

function strtoascii($str, $prefix="") {

$len = strlen($str);

$a = 0;

$scill = '';

while ($a < $len) {

$ud = 0;

if (ord($str{$a}) >= 0 && ord($str{$a}) <= 127) {

$ud = ord($str{$a});

$a += 1;

} else if (ord($str{$a}) >= 192 && ord($str{$a}) <= 223) {

$ud = (ord($str{$a}) - 192) * 64 + (ord($str{$a + 1}) - 128);

$a += 2;

} else if (ord($str{$a}) >= 224 && ord($str{$a}) <= 239) {

$ud = (ord($str{$a}) - 224) * 4096 + (ord($str{$a + 1}) - 128) * 64 + (ord($str{$a + 2}) - 128);

$a += 3;

} else if (ord($str{$a}) >= 240 && ord($str{$a}) <= 247) {

$ud = (ord($str{$a}) - 240) * 262144 + (ord($str{$a + 1}) - 128) * 4096 + (ord($str{$a + 2}) - 128) * 64 + (ord($str{$a + 3}) - 128);

$a += 4;

} else if (ord($str{$a}) >= 248 && ord($str{$a}) <= 251) {

$ud = (ord($str{$a}) - 248) * 16777216 + (ord($str{$a + 1}) - 128) * 262144 + (ord($str{$a + 2}) - 128) * 4096 + (ord($str{$a + 3}) - 128) * 64 + (ord($str{$a + 4}) - 128);

$a += 5;

} else if (ord($str{$a}) >= 252 && ord($str{$a}) <= 253) {

$ud = (ord($str{$a}) - 252) * 1073741824 + (ord($str{$a + 1}) - 128) * 16777216 + (ord($str{$a + 2}) - 128) * 262144 + (ord($str{$a + 3}) - 128) * 4096 + (ord($str{$a + 4}) - 128) * 64 + (ord($str{$a + 5}) - 128);

$a += 6;

} else if (ord($str{$a}) >= 254 && ord($str{$a}) <= 255) { //error

$ud = false;

}

$scill .= $prefix.$ud.";";

}

return $scill;

}

2、ascll码转字符串(中文):

/*

* ascii码转换为字符串(中文)

* $str :ascii码

*/

function asciitostr($str, $prefix="") {

$str = str_replace($prefix, "", $str);

$a = explode(";", $str);

$utf ='';

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;

}

以上就是吾爱编程为大家介绍的关于字符串与ASCII互转的全部内容了,希望对大家有所帮助,了解更多相关文章请关注吾爱编程网!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值