今天开发一个需求,遇到了需要控制文章内容的显示字数,在网上搜了一下,遇到一个不错的,自己试验了,没问题!发上来,有需要的转走。
1、先来个函数
<?php
functioncutstr($str,$cutleng)
{
$str=$str;//要截取的字符串$cutleng=
$cutleng;//要截取的长度$strleng=
strlen($str);//字符串长度if($cutleng>$strleng)return
$str;//字符串长度小于规定字数时,返回字符串本身$notchinanum=0;
//初始不是汉字的字符数for($i=0;$i<$cutleng;$i++)
{
if(ord(substr($str,$i,1))<=128)
{
$notchinanum++;
}
}
if(($cutleng%2==1)&&($notchinanum%2==0))
//如果要截取奇数个字符,所要截取长度范围内的字符必须含奇数个非汉字,否则截取的长度加一{
$cutleng++;
}
if(($cutleng%2==0)&&($notchinanum%2==1))
//如果要截取偶数个字符,所要截取长度范围内的字符必须含偶数个非汉字,否则截取的长度加一{
$cutleng++;
}
returnsubstr($str,0,$cutleng);
}
?>
2、在需要的时候,调用这个函数---cutstr
例如:
<?phpechocutstr(
$row_rec_news['news_title'],50);echo("...")?>
//从后台读出新闻标题的前25个汉字
|