我有以下代码,需要它只能在描述中回显100个字或更少,而不是整个描述。是否有通过编辑此代码来做到这一点?
public static function getExcerpt($profile) {
$out='';
if(!empty($profile['description'])) {
$out.=$profile['description'].' '.__('', 'lovestory');
}
return $out;
}
谢谢!
答案 0 :(得分:2)
// for 100 characters...
if (strlen($profile['description']) > 100)
$description = substr($profile['description'], 0, 100) . "...";
else
$description = $profile['description'];
$out.= $description . ' ' . __('', 'lovestory');
// for 100 words
$out.= implode(" ", array_slice(explode(" ", $profile['description']), 0, 100)) .' '.__('', 'lovestory');
答案 1 :(得分:2)
您可以简单地使用PHP的wordwrap函数,如下所示。
$text = "The quick brown fox jumped over the lazy dog.";
$newText = wordwrap(substr($text, 0, 20), 19, '...');
echo $newText;
将打印The quick brown fox...
答案 2 :(得分:0)
你可以使用具有空格的爆炸来创建单词数组,如果有超过100个单词,则使用array_slice选择前100个单词,然后将该数组内容重新插入字符串
$words = explode(' ', $out);
if(count($words) > 100){
return implode(' ', array_slice($words, 0, 100));
else{
return $out;
}
答案 3 :(得分:0)
这取决于你想要的确切程度或你的单词边界有多复杂,但一般来说这样的东西对你有用:
$excerpt = explode(' ', $profile['description']);
$excerpt = array_slice($excerpt, 0, 100);
$out .= implode(' ', $excerpt).' '.__('', 'lovestory');