/*===================字符串截取中文函数======================*/
function cnsubstr($str,$len)
{
if(strlen($str)>$len)
{
$temp=0;
for($i=0;$i<$len;$i++)
{
if(ord($str[$i])>0xa0) $temp++;
}
if($temp%2==0) $str=substr($str,0,$len)."...";
else $str=substr($str,0,$len+1)."...";
}
return $str;
}$str="的字符串进行截取?因为不能确定中文字符的位置(奇数或偶数)。结果截取输出是出现乱码!如何解决?谢谢各位了!";
echo cnsubstr($str,30);
function cnsubstr($str,$len)
{
if(strlen($str)>$len)
{
$temp=0;
for($i=0;$i<$len;$i++)
{
if(ord($str[$i])>0xa0) $temp++;
}
if($temp%2==0) $str=substr($str,0,$len)."...";
else $str=substr($str,0,$len+1)."...";
}
return $str;
}$str="的字符串进行截取?因为不能确定中文字符的位置(奇数或偶数)。结果截取输出是出现乱码!如何解决?谢谢各位了!";
echo cnsubstr($str,30);
* 控制显示文字个数
* @param: $str 要截取的字符串
* @param: $num 截取字符长度
* @return: $out 符合长度要求的字符串
*/
function SubstrGB($str,$num)
{
$pos=0;
$out="";
$str=trim($str);
while(($c=substr($str,$pos,1))!=''){
if(substr($str,$pos+1,1)=="" and $c=="\n") break;
if(ord($c)>128){
$out.=$c;
$pos++;
$c=substr($str,$pos,1);
$out.=$c;
}
else{
$out.=$c;
}
$pos++;
if($pos>=$num) break;
}
$out=str_replace("<br>","",trim($out));
if(strlen($str)>$num) $out=$out."...";
return $out;
}
//截取部分字符串
/***********************************************************************************************
函数名称:一个可以截取指定字符串指定长度的函数
函数原形: string Showtitle(string str,int [strlen]);
参数说明: $str 要处理的字符串
$strlen 要截取的长度
作用:截取指定字符串指定长度的函数,该函数可自动判定中英文,不会出现乱码
***********************************************************************************************/function Showtitle($str,$strlen=10) {
for($i=0;$i<$strlen;$i++)
if(ord(substr($str,$i,1))>0xa0) $j++;
if($j%2!=0) $strlen++;
$str=substr($str,0,$strlen);
return $str;
}
修改php.ini:
去处extension=php_mbstring.dll前面的分号然后使用mb_substr来截取或者你将你要截取的字符串帖出来
extension=php_mbstring.dll
这一行
并且注意
extension_dir =x:/php/extensions
的路径要为php_mbstring.dll所在目录,一般php的extensions目录有如果是linux,安装php的时候注意带上扩展参数:
--with-mbstring