как вырезать и тег, и его часть

Тема в разделе "Регулярные выражения", создана пользователем t3s, 18 фев 2010.

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

    t3s

    Регистр.:
    16 фев 2008
    Сообщения:
    719
    Симпатии:
    290
    джентльмены, подскажите плз кто в курсе
    есть строка, которая кроме текста может содержать теги вместе с атрибутами (может содержать а может и не содержать), примерно так:
    PHP:
    $str='текст текст, пусть даже класссический lorem ipsum для колориту, потом снова текст <a href="http://ццц.сцылко.ком">а вот анкор желательно оставить, но если не получится, то пох на анкор</a> а тут снова может быть текст';
    задача в том, чтобы вырезать теги вместе с атрибутами, по возможности не затрагивая анкор

    гугл сЦуко этакое, не говоря уже про яндекс-рамблер и остальных молчаливых партизанов и моя не совсем трезвая память подсказывают что-то вроде

    PHP:
    $str=preg_replace('#<a .*>|</a>#Ui'''$str);
    но задача осложнена тем, что строка может оборваться на абсолютно любом символе, т.е. может быть так

    PHP:
    $str='текст текст, пусть даже класссического lorem ipsum для колориту, потом снова текст <a href="http://ццц.сцылко.ком">а вот анкор желательно оставить';
    а может вот так
    PHP:
    $str='текст текст, пусть даже класссического lorem ipsum для колориту, потом снова текст <a href="http://';
    можно ли решить подобную задачу с помощью регэкспов? или все же копать в сторону недопущения тегов в строке?

    кстати, в качестве тегов может быть не только ссылка (a href) но и картинка (img), либо флешка (embed)...
     
  2. Nevep

    Nevep Постоялец

    Регистр.:
    16 дек 2009
    Сообщения:
    59
    Симпатии:
    8
    HTML:
    <font>,<strong>,<em>
    - теги которые ненужно вырезать.
    PHP:
    $str=strip_tags($str"<font>,<strong>,<em>");
     
  3. t3s

    t3s

    Регистр.:
    16 фев 2008
    Сообщения:
    719
    Симпатии:
    290
    Nevep, не совсем понял при чем здесь
    вопрос стоит в том, как вырезать, а не что не вырезать причем изначально неизвестно, содержит ли переменная тег целиком или только его часть
    т.е. вырезать должно и
    PHP:
    <img src="путь_к_картинке">
    и
    PHP:
    <img sr
    аналогично для тега a href - там еще сложнее в связи с анкором и закрывающей частью
     
  4. Sanuch

    Sanuch

    Регистр.:
    25 май 2009
    Сообщения:
    207
    Симпатии:
    70
    PHP:
    $reg '#<([^>]+)>?#i';
     
    t3s нравится это.
  5. Nevep

    Nevep Постоялец

    Регистр.:
    16 дек 2009
    Сообщения:
    59
    Симпатии:
    8
    То, что тебе нужно
    PHP:
    $str=strip_tags($str);
     
    t3s нравится это.
Статус темы:
Закрыта.