我有这个:
<? if (strlen($item->introtext) > 300) {
echo substr($item->introtext, 0,300)." More";
} else {
echo $item->introtext;}
?>
但它计算符号,我希望它计算单词。例如。在第10个单词后添加“更多”。
如何做到这一点,我想我必须用其他东西改变“strlen”?
答案 0 :(得分:4)
使用 str_word_count()
功能。哪个会给出计数以及每秒参数的单词数组。欲了解更多信息
答案 1 :(得分:1)
您可以按空格分割,并计算您有多少单词:
$words = preg_split("/\s+/", $string, null, PREG_SPLIT_NO_EMPTY);
preg_split
来克服连续的空格问题。PREG_SPLIT_NO_EMPTY
不包含空字。 $words
现在包含所有单词的数组,您可count()
知道自己有多少单词,array_slice()
和implode()
可以从中获取字符串
答案 2 :(得分:0)
你可以在空格上爆炸字符串。那会给你一个包含每个单词条目的数组。然后,数组的计数将告诉您单词的数量。这种技术可能存在一些误报,因为[space]包围的所有东西都算作一个单词。