对字符的接取可以用substr() 之后看了一下文章可以用mb的扩展库mb_substr() 但如果中E数字混排的时候
可能会出现乱码 网上google 下 找到这个 收藏了
<?
/*
* 可以避免乱码的截取汉字
* 参数 $str 为字符串,$start 为开始字符,$len 结束字符
* 返回截取后的字符
*/
function msubstr($str, $start, $len) {
$tmpstr = "";
$strlen = $start + $len;
for($i = 0; $i < $strlen; $i++) {
if(ord(substr($str, $i, 1)) > 0xa0) {
$tmpstr .= substr($str, $i, 2);
$i++;
} else
$tmpstr .= substr($str, $i, 1);
}
return $tmpstr;
}
?>


<?php
/*
#$start为起始位置,默认为0
#$len为截取长度,如遇半个汉字,则自动降低长度而不是取整个汉字,保证了不会超过规定的长度
*/
function substr_cn($str,$len,$start=0)
{
$strlen=strlen($str);
for($i=0;$i<$strlen;$i++)
{
if($i>=$start&&$i<($start+$len))
{
if(ord(substr($str,$i,1))>0xa1)
{
$tmpstr.=substr($str,$i,2);
$i++;
}
else
$tmpstr.=substr($str,$i,1);
}
}
if(strlen($tmpstr)>$len)
{
$len--;
return substr_cn($str,$len,$start);
}
return $tmpstr;
}
//-------------------------------------------------
//示例
echo substr_cn("123as中国PHP联盟",9,1);
echo "<br>";
echo substr_cn("123as中国PHP联盟",10);
?>

本文介绍了一种在处理包含中英文混合文本时,能够有效避免乱码问题的字符串截取方法。该方法通过自定义函数实现,能够在指定长度内准确截取字符串,特别适用于需要处理多语言内容的应用场景。
2065

被折叠的 条评论
为什么被折叠?



