4

以下のgetExcerpt()関数を使用して、テキストのスニペットの長さを動的に設定しています。ただし、私のsubstrメソッドは現在文字数に基づいています。単語数に変換したいのですが。関数を分離する必要がありますか、それともsubstrの代わりに使用できるPHPメソッドがありますか?

function getExcerpt()
{
    //currently this is character count. Need to convert to word count
    $my_excerptLength = 100; 
    $my_postExcerpt = strip_tags(
        substr(
            'This is the post excerpt hard coded for demo purposes',
            0,
            $my_excerptLength 
            )
        );
    return ": <em>".$my_postExcerpt." [...]</em>";}
}
4

2 に答える 2

5

str_word_countを使用する

パラメータに応じて、文字列内の単語数(デフォルト)または見つかった単語の配列(サブセットのみを使用する場合)を返すことができます。

したがって、テキストスニペットの最初の100語を返すには、次のようにします。

function getExcerpt($text)
{
    $words_in_text = str_word_count($text,1);
    $words_to_return = 100;
    $result = array_slice($words_in_text,0,$words_to_return);
    return '<em>'.implode(" ",$result).'</em>';
}
于 2011-06-20T19:34:09.270 に答える
1

スクリプトでピリオド、コンマ、その他の句読記号を無視しないようにする場合は、このアプローチを採用する必要があります。

 function getExcerpt($text)
{
   $my_excerptLength = 100; 
   $my_array = explode(" ",$text);
   $value = implode(" ",array_slice($my_array,0,$my_excerptLength));
   return 

}

注:これは単なる例です。お役に立てば幸いです。お役に立てば投票することを忘れないでください。

于 2015-03-06T08:40:38.390 に答える