2012-07-19 13 views
0

可能重复:
Shorten String in PHP (full words only)Substr的PHP代码 - 在单词后停止?

下面SUBSTR这IAM使用。其中回应我的数据库中的前38个字符。这个代码打破了这个词的结尾。

<?php echo substr(ucfirst($row['metadesc']),0,38); ?>... 

这样的输出。

news for today was null try tomo 

如何在单词结束后38个字符后停止字符串。

输出应该是这样的

news for today was null try tomorrow 

回答

1
function TrimString($String, $Length) 
{ 
    if(strlen($String) > $Length) 
    { 
     $Temp[0] = substr($String, 0, $Length); 
     $Temp[1] = substr($String, $Length); 
     $SpacePos = strpos($Temp[1], ' '); 
     if($SpacePos !== FALSE) 
     { 
      return $Temp[0].substr($Temp[1], 0, $SpacePos); 
     } 
    } 
    return $String; 
} 
0
function substrword($str, $begin, $length) 
{ 
    if (($begin + $length) < strlen($str)) {  
      return substr($str, $begin, $length).current(explode(' ', substr($str, $length))).'...'; 
    } 
    return $str; 
} 
0

你可以使用这个表达式:

preg_match('/^(.{1,38})\b/u', $string, $matches); 

你的字符串将是:

$matches[1]