За последние 24 часа нас посетил 18291 программист и 1628 роботов. Сейчас ищут 1652 программиста ...

Удалит строку <p> из базы при вхождении фразы

Тема в разделе "Сделайте за меня", создана пользователем romagromov, 3 июн 2016.

Метки:
  1. romagromov

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

    С нами с:
    17 дек 2015
    Сообщения:
    73
    Симпатии:
    0
    Здравствуйте!
    Более менее знаю, как делать замены и тд.
    Но тут другая задача.

    В mysql базе есть много html описаний.

    Как можно удалить всю строку от <p>, включая </p>
    если в ней есть искомая фраза?

    Пример:

    HTML:
    1. <p>Строка с текстом, тут искомая фраза, продолжение строки</p>
    Может это возможно прямо в виде запроса в mysql, без php?
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Можно через xpath найти нужный текст по селектору на тег <p></p> и в нём искать текст. Это всё через DOM.
    Можно и через регулярное выражение, вот возможно не оптимальное
    PHP:
    1. <?php
    2. var_export(preg_replace("/(<p>[^<]*test[^<]*<\/p>)/iu", '', '<div><p>a test b</p><p>a test</p><p>test b</p><p>test</p><p>hello word</p></div>'));
    Можешь его переписать на replace от mysql, если заменить один раз в базе хочешь, то это будет быстрее.