2012-03-03 5 views
0

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

например.

<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 учитывают только обычные слова.

+0

Любая причина, по которой вы использовали слово «nl2br» в своем вопросе? –

+0

@ Col.Shrapnel: Нажмите «Улучшить», и вы можете его отредактировать. – ThiefMaster

+0

этот глупый двигатель меня не пускает. он оставит это для кого-то еще для просмотра –

ответ

1

Таким образом, после некоторого Googling я нашел то, что я искал (на этом форуме 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); 
     } 
    } 
} 
Смежные вопросы