用这个函数
function getSubString($strTitle,$nLength)
{ if (strlen($strTitle) > $nLength)
{
$temp = 0;
for($i=0;$i < $nLength;$i++)
{
$chr = substr($strTitle,$i,1); if(ord($chr) > 128)
{
$temp++;
}
} if($temp%2 ==0)
{
$strTitle = substr($strTitle,0,$nLength)."...";
}
else
{
$strTitle = substr($strTitle,0,$nLength+1)."..."
;
}
}
return $strTitle;
}
function getSubString($strTitle,$nLength)
{ if (strlen($strTitle) > $nLength)
{
$temp = 0;
for($i=0;$i < $nLength;$i++)
{
$chr = substr($strTitle,$i,1); if(ord($chr) > 128)
{
$temp++;
}
} if($temp%2 ==0)
{
$strTitle = substr($strTitle,0,$nLength)."...";
}
else
{
$strTitle = substr($strTitle,0,$nLength+1)."..."
;
}
}
return $strTitle;
}
先判断所读出字段的长度,如果超过X(X是假设我设定的默认显示多少长度),就用截取前x位显示出来,如果没超过的话就显示整个字段.不知道这样的方法可以吗?有没有更加简便的呢?
function cut_long_string($str,$len){
if(strlen($str)<$len){
return $str;
}
$_str = substr($str,0,$len-3);
$_str = preg_replace('/[\x01-\x2E|\/|\\|\[|\]|\x5B-\x60|\x3A-\x40|\x5E-\x60]/',"_",$_str);
if(preg_match("/\W+$/u",$_str,$_chinese)){
//echo $_chinese[0]." ". strlen($_chinese[0])." ".(strlen($_chinese[0])%2)."<BR>";
if((strlen($_chinese[0]))%2){
$_ret = substr($str,0,$len-2)."..";
}else{
$_ret = substr($str,0,$len-3) . '...';
}
}else{
$_ret = substr($str,0,$len-3).'...';
}
return $_ret;
}