我想知道如何只显示帖子的第一个“x”字符作为预览。有点像StackOverflow在显示问题列表时所做的事情。
The quick brown fox jumps over the lazy dog
转到
The quick brown fox jumps...
我不想在中间分开一个单词。我认为爆炸功能在每个空间分裂,爆炸(“”,$ post),但我不确定是否有其他方式。感谢
答案 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";