$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 を超えない場合は、含める必要があります。