За последние 24 часа нас посетили 21184 программиста и 1632 робота. Сейчас ищут 1418 программистов ...

Удаление текста, заключенного между набором символов

Тема в разделе "Регулярные выражения", создана пользователем SergeyRock, 15 июн 2011.

  1. SergeyRock

    SergeyRock Активный пользователь

    С нами с:
    18 май 2011
    Сообщения:
    10
    Симпатии:
    0
    Здравствуйте уважаемые!

    Необходимо удалить из текста все что находится между "<!--" и "-->", включая "<!--" и "-->".
    Подскажите с регуляркой.

    Вот текст для тестирования:

     
  2. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    preg_replace('#<!--.*-->#sUi', '', $text);
     
  3. SergeyRock

    SergeyRock Активный пользователь

    С нами с:
    18 май 2011
    Сообщения:
    10
    Симпатии:
    0
    Спасибо, а если эти символы представлены в HTML-кодах?
    &lt;!-- и --&gt;
     
  4. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
  5. SergeyRock

    SergeyRock Активный пользователь

    С нами с:
    18 май 2011
    Сообщения:
    10
    Симпатии:
    0
    А здесь нет подводных камней, что после конвертации htmlspecialchars-decode -> htmlspecialchars нужные теги (которые не стоит удалять) превратятся в HTML-сущности?

    Решил таким образом:
    $html = preg_replace('#&lt;!--.*--&gt;#sUi', '', $html); // Удаляем HTML комментарии
     
  6. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    зависит от того, что и как у тебя хранится. изменение регулярки безопаснее ;)