$theExcerpt = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis'

$theExcerptAppend = (strlen($theExcerpt) > 156) ? '...' : '';
$theExcerpt = preg_replace('/\s+?(\S+)?$/', '', substr($theExcerpt, 0, 156));
$theExcerpt .= $theExcerptAppend;


只要输入的短语长度超过156个字符,脚本就可以正常工作。但是,当长度小于156时(如此处在154所示),即使包括该单词的字符串仍小于156,也会删除最后一个单词。

注意:我不希望字符串在单词的中间终止,但是如果包含的单词不超过strlen值156,则应将其包括在内。

最佳答案

使用substrstrrpos

if (strlen($theExcerpt) > 156) {
    $theExceprt = substr($theExcerpt, 0, 156);
    $theExcerpt = substr($theExcerpt, 0, strrpos($theExcerpt, ' '));
    $theExcerpt .= '...';
}

10-07 14:05