отфильтровать html символы

Тема в разделе "PHP", создана пользователем dotsenko, 20 ноя 2008.

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

    dotsenko

    Регистр.:
    27 дек 2006
    Сообщения:
    233
    Симпатии:
    106
    :)есть граббер телепрограммы
    все хорошо парсит проблема в том что выводит сылки на программы
    в виде <a href="/tv/events/14598584/" >Понять. Простить</a>
    как можно сделать что бы не показывало в браузере
    <a href="/" ></a>
    а просто было 'Понять. Простить'.
     
  2. ewg777

    ewg777

    Регистр.:
    6 авг 2007
    Сообщения:
    763
    Симпатии:
    321
    strip_tags
    СКОЛЬКО РАЗ УЖЕ ОБСУЖДАЛОСЬ!!
     
    dotsenko нравится это.
  3. dotsenko

    dotsenko

    Регистр.:
    27 дек 2006
    Сообщения:
    233
    Симпатии:
    106
    :(не получается можете хотя бы пример привести запутался
     
  4. megadude

    megadude

    Регистр.:
    6 сен 2006
    Сообщения:
    184
    Симпатии:
    65
    Так смотри же в примерах по ссылке от ewg777
    PHP:
    <?php
    $text 
    '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
    echo 
    strip_tags($text);
    echo 
    "\n";

    // Разрешить теги <p> и <a>
    echo strip_tags($text'<p><a>');
    ?>
    А в твоем коде пиши не
    Код:
    str_ireplace('<','&lt',$string);
    а
    Код:
    str_ireplace('<','&lt;',$string);
    Точки с запятой не хватает после символа.
     
  5. Liver

    Liver

    Регистр.:
    24 сен 2008
    Сообщения:
    316
    Симпатии:
    91
    А еще лучше htmlspecialchars или htmlentities
     
  6. dotsenko

    dotsenko

    Регистр.:
    27 дек 2006
    Сообщения:
    233
    Симпатии:
    106
    получается будет вот так?
     
  7. Liver

    Liver

    Регистр.:
    24 сен 2008
    Сообщения:
    316
    Симпатии:
    91
    Так. хватит заниматься ерундой.
    Если тебе нужно почистить ссылки и вывести их как текст, то тебе хватит strip_tags. А если надо убрать <> и кавычки (например вывод в составе xml/html) то тут и нужен htmlspecialchars.

    PHP:
    $text="<a href=\"/tv/events/14598584/\" >Понять. Простить</a>"//твоя ссылка в телепрограмме
    $text=strip_tags($text);  //удалит все тэги
    $text=htmlspecialchars($text); //преобразует все левые символы.
    Да, htmlspecialchars лучше чем str_replace, но в твоем случае вообще не нужен, потому что в выводе телепограммы все эти знаки уже идут в виде &amp;
    Поэтому не морочь себе голову. Одного strip_tags тебе хватит. И не надо никаких тегов разрешать. Тебе нужен чистый текст. Только если ты решишь оставить часть исходного форматирования, только тогда (возможно, зависит от задачи использвания) м нужен будет htmlspecialchars.
     
  8. HatoL

    HatoL

    Регистр.:
    5 фев 2008
    Сообщения:
    206
    Симпатии:
    36
    PHP:
    $str '<a href="/tv/135">Понять. Простить</a>';

    $cut str_replace ('<a>'''$str);

    $cut str_replace ('</a>'''$cut);

    $cut preg_replace ('#<a\s.*?>#Dis'''$cut);

    $cut preg_replace ('#</a\s.*?>#Dis'''$cut);

    echo 
    $cut// Понять. Простить
     
Статус темы:
Закрыта.