0

我有这个:

<? if (strlen($item->introtext) > 300) { 
    echo substr($item->introtext, 0,300)." More"; 
    } else { 
    echo $item->introtext;}
?>

但它计算符号,我希望它计算单词。例如,在第 10 个单词之后添加“更多”。

怎么做,我想我必须用其他东西改变“strlen”?

4

3 回答 3

4

使用功能str_word_count()。这将根据第二个参数给出计数以及单词数组。欲了解更多信息

于 2013-02-07T12:35:56.307 回答
1

您可以用空格分隔,并计算您有多少单词:

$words = preg_split("/\s+/", $string, null, PREG_SPLIT_NO_EMPTY);

笔记:

  • preg_split用来克服连续空格问题。
  • PREG_SPLIT_NO_EMPTY不包括空话。

$words现在包含所有单词的数组,你可以count()知道你有多少单词,array_slice()implode()从中获取一个字符串。

于 2013-02-07T12:34:26.260 回答
0

您可以在空格上爆炸字符串。这应该给你一个包含每个单词条目的数组。然后数组的计数会告诉您单词的数量。这种技术可能会出现一些误报,因为被 [空格] 包围的所有内容都将被视为一个单词。

于 2013-02-07T12:31:43.663 回答