вернуть только указанное количество слов - PullRequest
0 голосов
/ 03 марта 2012

У меня есть текст с тегами HTML, из которого я хочу вывести только 40 слов.

, например

<strong>This is an article </strong> containing 150 words with <a href="">HTML
</a>tags and I want to output only first 40 words. How to do this?

Я сейчас использую nl2br, потому что у него есть EOL. explode() и str_word_count учитывают только обычные слова.

1 Ответ

1 голос
/ 04 марта 2012

Так что после некоторого поиска в Google я нашел то, что искал (на этом форуме http://www.webmasterworld.com/forum88/10821.htm)

Функция вырезает указанное количество символов из строки, а затем добавляет символы до следующего пробела (чтобы предотвратить вырезку в середине слова).

function elliStr($string,$noChars) { 
    for ($i = 0; $i < strlen($string); $i++) { 
    $result = ($noChars+$i >= strlen($string) ? $string : ($string{$noChars+$i} == " " ? substr($string,0,$noChars+$i) : ""));
    if ( $result != "" ) {
        return nl2br($result);
        } 
    }
}
...