欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php中ord实现中文字符串截取并解决乱码问题_PHP教程

程序员文章站 2022-04-18 23:52:11
...
下面我们举了二个例子都是利用ord来实例字符ascii判断以勉出现中文乱码的问题,这个函数的功能我们可以参考http://www.bKjia.c0m/phper/php/41030.htm 文章,它很好了介绍了此函数的用法。

代码如下 复制代码

//a字符
$str=(pack("a*", "中国"));
echo $str,"=",strlen($str),"字节n";
getascill($str);
//h字符
$str=(pack("h*", "fffe"));
echo $str,"=",strlen($str),"字节n";
getascill($str);
//c字符
$str=(pack("c*", "55","56","57"));
echo $str,"=",strlen($str),"字节n";
getascill($str);

//i字符 短整形 32位 4个字节 64位8个字节
$str=(pack("i", "100"));
echo $str,"=",strlen($str),"字节n";
getascill($str);

//s字符 短整形 2个字节
$str=(pack("s", "100"));
echo $str,"=",strlen($str),"字节n";
getascill($str);

//l字符 长整形 4个字节
$str=(pack("l", "100"));
echo $str,"=",strlen($str),"字节n";
getascill($str);

//f字符 单精度浮点 4个字节
$str=(pack("f", "100"));
echo $str,"=",strlen($str),"字节n";
getascill($str);

//d字符 双精度浮点 8个字节
$str=(pack("d", "100"));
echo $str,"=",strlen($str),"字节n";
getascill($str);

function getascill($str)
{
$arr=str_split($str);
foreach ($arr as $v)
{
echo $v,"=",ord($v),"n";
}
echo "=============rnrn";
}
?>

更多详细内容请查看:http://www.bKjia.c0m/phper/php-function/php-ord.htm

实例二

代码如下 复制代码


/*
@ 另一种方法,使用ord()函数:
@ 适用于 gb2312 编码:
*/
$str = "怎么将新闻的很长的标题只显示前面一些字,后面用.....来代替?";
function gb2312_substr($str, $limit) {
$restr ='';
for($i=0;$i $restr .= ord($str[$i])>127 ? $str[$i].$str[++$i] : $str[$i];
}
return $restr;
}
/*
@ 以下仅适用于 utf-8 编码;
*/
function utf8_substr($str, $limit) {
$restr = '';
for($i=0;$i $restr .= ord($str[$i])>127 ? $str[$i].$str[++$i].$str[++$i] : $str[$i];
}
return $restr;
}
//解释下上面第一个:chr(0)不是null,null是什么都没有,而chr(0)的值是0。表示成16进制是0x00,表示成二进制是00000000虽然chr(0)不会显示出什么,但是他是一个字符。虽然chr(0)不会显示出什么,但是他是一个字符。当汉字被截断时,根据编码规则他总是要把后边的其他字符拉过来一起作为汉字解释,这就是出现乱码的原因。
?>

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/632246.htmlTechArticle下面我们举了二个例子都是利用ord来实例字符ascii判断以勉出现中文乱码的问题,这个函数的功能我们可以参考http://www.111cn.net/phper/php/4103...