如何在不切断单词的情况下截断php中的字符串?

use*_*090 2 php string

我正在为后续案例寻找解决方案.我有一个字符串

"This is a long string of words"
Run Code Online (Sandbox Code Playgroud)

我只想使用前几个单词,但如果我只是在第20个字符后剪切所有内容,它将如下所示:

"This is a long strin"
Run Code Online (Sandbox Code Playgroud)

我可以先抓3个字

implode(' ', array_slice(explode(' ', "This is a long string of words"), 0, 3));
Run Code Online (Sandbox Code Playgroud)

但在某些情况下,3个字会变得太短"II I".

如何才能在第20个字符之前抓取尽可能多的单词?

Rob*_*Rob 6

echo array_shift(explode("\n", wordwrap($text, 20)));

文档: