如何只显示帖子的前x个字符作为预览(PHP)?

时间:2010-01-18 03:01:39

标签: php function

我想知道如何只显示帖子的第一个“x”字符作为预览。有点像StackOverflow在显示问题列表时所做的事情。

The quick brown fox jumps over the lazy dog

转到

The quick brown fox jumps...

我不想在中间分开一个单词。我认为爆炸功能在每个空间分裂,爆炸(“”,$ post),但我不确定是否有其他方式。感谢

4 个答案:

答案 0 :(得分:9)

尝试:

preg_match('/^.{0,30}(?:.*?)\b/iu', $text, $matches);

最多匹配30个字符,然后在下一个最接近的字数中断

答案 1 :(得分:2)

strpos(http://www.php.net/strpos)会为您提供所需。这个功能可以满足您的需求。

function getPreview($text, $minimumLength=60){
     return substr($text,0,strpos($text,' ',$minimumLength)) . '...';
}

注意:我没有测试过该功能

答案 2 :(得分:1)

使用带有偏移量的strpos()来查找方便放置的空间,并使用substr()对字符串进行切片。

答案 3 :(得分:1)

您可以尝试wordwrap

$str = "The quick brown fox jumps over the lazy dog";
$x = 14;
$newtext = wordwrap($str, $x);
$s  = explode("\n",$newtext,2);
print $s[0];

注意:如果$ x表示为8,则输出为“The”,而不是“The quick”

您也可以使用爆炸。

$str = "The quick brown fox jumps over the lazy dog";
$s = explode(" ",$str);
$x=14;
$final="";
foreach ($s as $k){
    if ( strlen($final) <= $x ){
        $final.="$k ";
    }else{ break; }
}
print "-> $final\n";