这就是我正在尝试做的事情。我有一段文本,我想从字符串中提取前 50 个单词,而不切断中间的单词。这就是为什么我更喜欢单词而不是字符,然后我可以使用 left() 函数。
我知道 str_word_count($var) 函数将返回字符串中的单词数,但如何仅返回前 50 个单词?
我将完全沉浸在 PHP 中,但我还不熟悉许多字符串函数。
提前致谢,
贾森
我建议不要使用字数作为基线。你很容易就会得到much更少或much比您想要显示的数据更多。
我过去使用的一种方法是要求所需的长度,但要确保它不会截断单词。这里有一些可能对你有用的东西:
function function_that_shortens_text_but_doesnt_cutoff_words($text, $length)
{
if(strlen($text) > $length) {
$text = substr($text, 0, strpos($text, ' ', $length));
}
return $text;
}
也就是说,如果你通过了1
作为第二个参数str_word_count
,它将返回一个包含所有单词的数组,您可以对其使用数组操作。
还有,你could虽然,这有点hackey,在空格上分解字符串等等......但这会带来很多错误的空间,例如不是单词的东西被算作单词。
附言。如果您需要上述函数的 Unicode 安全版本,并且有mbstring
or iconv
安装扩展后,只需将所有字符串函数替换为它们的mb_
or iconv_
前缀等价物。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)