专业编程基础技术教程

网站首页 > 基础教程 正文

substr中文乱码问题的解决,使substring函数代替

ccvgpt 2024-10-12 13:32:37 基础教程 12 ℃

substr函数是PHP内置函数,不足的地方是取汉字时存在半角全角无法区别出现乱码,提供substring函数来代替这段函数,来解决这个问题。

function substring($str, $start, $length){ //比较好用字符串截取函数
$len = $length;
if($length < 0){
$str = strrev($str);
$len = -$length;
}
$len= ($len < strlen($str)) ? $len : strlen($str);
for ($i= $start; $i < $len; $i ++)
{
 if (ord(substr($str, $i, 1)) > 0xa0)
 {
 $tmpstr .= substr($str, $i, 2);
 $i++;
 } else {
 $tmpstr .= substr($str, $i, 1);
 }
}
if($length < 0) $tmpstr = strrev($tmpstr);
return $tmpstr;
}


substr中文乱码问题的解决,使substring函数代替

哈哈,不过现在用扩展函数了!

<?php
$str = '我是一串比较长的中文-www.ooso.net';
echo "mb_substr:" . mb_substr($str, 0, 6, 'utf-8');
echo "<br>";
echo "mb_strcut:" . mb_strcut($str, 0, 6, 'utf-8');
?>


mb_substr:我是一串比较

mb_strcut:我是

从上面的例子可以看出,mb_substr是按字来切分字符,而mb_strcut是按字节来切分字符,但是都不会产生半个字符的现象。

Tags:

最近发表
标签列表