$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,则应该包含。