PHP描述摘录

时间:2014-04-21 14:52:26

标签: php echo

我有以下代码,需要它只能在描述中回显100个字或更少,而不是整个描述。是否有通过编辑此代码来做到这一点?

public static function getExcerpt($profile) {
    $out='';
    if(!empty($profile['description'])) {
        $out.=$profile['description'].' '.__('', 'lovestory');
    }

    return $out;
}

谢谢!

4 个答案:

答案 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');