Настраиваемая чистка текста от html тегов

guru85

Постоялец
Регистрация
24 Мар 2010
Сообщения
100
Реакции
4
есть функция которая полностью очищает текст от html тегов, но нужно добавить туда функцию исключения, чтобы к примеру теги форматирования, такие как перенос строки, абзац и др. не удалять. Вот сама функция
PHP:
function getTextFromHTML($htmlText)
{
    $search = array ("'<script[^>]*?>.*?</script>'si",  // Remove javaScript 
       "'<style[^>]*?>.*?</style>'si",  // Remove styles 
       "'<xml[^>]*?>.*?</xml>'si",  // Remove xml tags 
       "'<[\/\!]*?[^<>]*?>'si",           // Remove HTML-tags 
       "'([\r\n])[\s] '",                 // Remove spaces
       "'&(quot|#34);'i",                 // Replace HTML special chars
       "'&(amp|#38);'i", 
       "'&(lt|#60);'i", 
       "'&(gt|#62);'i", 
       "'&(nbsp|#160);'i", 
       "'&(iexcl|#161);'i", 
       "'&(cent|#162);'i", 
       "'&(pound|#163);'i", 
       "'&(copy|#169);'i", 
       "'&#(\d );'e");                    // write as php

    $replace = array ("", 
                      "", 
                      "",
                      "",
                      "\\1", 
                      "\"", 
                      "&", 
                      "<", 
                      ">", 
                      " ", 
                      chr(161), 
                      chr(162), 
                      chr(163), 
                      chr(169), 
                      "chr(\\1)"); 
                      
    return preg_replace($search, $replace, $htmlText);
}
как бы туда исключения запихать?
 
ну по логике надо добавить в функцию еще один параметр, в котором передавать теги, которые НЕ нужно заменять. А потом в самой функции делать проверку. Код писать не буду, тут школьных знаний достаточно.
 
strip_tags ( string $str [, string $allowable_tags ] )
Эта функция возвращает строку str , из которой удалены HTML и PHP тэги.
Необязательный второй аргумент может быть использован для указания тэгов, которые не должны удаляться.
например:
Код:
strip_tags ( $text, '<br><del><strong><em><a><font><p>' )
в данном случае из текста удалятся все теги кроме <br><del><strong><em><a><font><p>
 
Назад
Сверху