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