0

私はこれを持っています:

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

しかし、それは記号を数えます、私はそれが単語を数えることを望みます。たとえば、10番目の単語の後に「More」を追加します。

これを行う方法、私は他の何かで「strlen」を変更する必要があると思いますか?

4

3 に答える 3

4

関数を使用しますstr_word_count()。これにより、2番目の引数ごとにカウントと単語の配列が得られます。詳細については

于 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 に答える