как убрать из html все теги?

Тема в разделе "PHP", создана пользователем danneo, 10 сен 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. danneo

    danneo Честный

    Регистр.:
    13 ноя 2007
    Сообщения:
    1.420
    Симпатии:
    109
    Вывожу текст, а в нем куча тегов. Как их убрать все, оставить только голый текст?
     
  2. Yaggi Jah

    Yaggi Jah Постоялец

    Регистр.:
    15 ноя 2006
    Сообщения:
    75
    Симпатии:
    31
    PHP:
    $string strip_tags($string);

    или

    $search 
    = array ("'<script[^>]*?>.*?</script>'si",  // Вырезает javaScript

                     
    "'<[\/\!]*?[^<>]*?>'si",           // Вырезает HTML-теги

                     
    "'([\r\n])[\s]+'",                 // Вырезает пробельные символы

                     
    "'&(quot|#34);'i",                 // Заменяет HTML-сущности

                     
    "'&(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");                    // интерпретировать как php-код



    $replace = array ("",

                      
    "",

                      
    "\\1",

                      
    "\"",

                      
    "&",

                      
    "<",

                      
    ">",

                      
    " ",

                      
    chr(161),

                      
    chr(162),

                      
    chr(163),

                      
    chr(169),

                      
    "chr(\\1)");



    $text preg_replace($search$replace$document);
     
  3. jerri3000

    jerri3000 Постоялец

    Регистр.:
    3 фев 2007
    Сообщения:
    92
    Симпатии:
    90
  4. moneypool

    moneypool Писатель

    Регистр.:
    11 сен 2009
    Сообщения:
    5
    Симпатии:
    0
    а strip_tags не подойдет?
     
  5. lungsmoney

    lungsmoney Постоялец

    Регистр.:
    25 апр 2008
    Сообщения:
    81
    Симпатии:
    23
    +1 за strip_tags.

    Если хочешь оставить какое нибудь форматирование - используй во 2 параметре их значения.
    Например:
     
  6. oraculseed

    oraculseed Постоялец

    Регистр.:
    1 янв 2009
    Сообщения:
    152
    Симпатии:
    10
    кстати есть используешь редактор который поддерживает автозамену по регам то можно просто регами реплейснуть
     
  7. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    883
    Симпатии:
    540
    Универсальное решение это strip_tags. Но в некоторых случаях ведёт себя неверно-
    PHP:
    "<b>111</b> <<<Супер Заголовок!  Текст Текст Текст"
    уберёт все начиная с <<< до конца текста
    Как вариант обратится к комментариям http://ru2.php.net/manual/en/function.strip-tags.php Там множество разнобразных реализаций
     
    uadesign нравится это.
  8. SergXP

    SergXP Постоялец

    Регистр.:
    8 мар 2008
    Сообщения:
    66
    Симпатии:
    11
    PHP:
    function html2txt($document){
    $search = array('@<script[^>]*?>.*?</script>@si',  // Strip out javascript
                   
    '@<[\/\!]*?[^<>]*?>@si',            // Strip out HTML tags
                   
    '@<style[^>]*?>.*?</style>@siU',    // Strip style tags properly
                   
    '@<![\s\S]*?--[\t\n\r]*>@',        // Strip multi-line comments including CDATA
                   
    '@\[.*\]@'
                   
    );
    $text preg_replace($search':'$document);
    return 
    $text;
    }
    // вызываем ф-цию
    $htmlcode file_get_contents("http://www.google.ru/");
    html2txt($htmlcod);
     
Статус темы:
Закрыта.