Есть текст:
<hr class="h1"><sftxt>Hello World!</sftxt><hr class="h1">
Так же есть текст:
<hr class="h1"><bxtwt>Hello World!</bxtwt><hr class="h1">
Как можно удалить тэг <hr class="h1">
из текста приведенного выше? Причем только если рядом с этим тэгом идет тэг <sftxt>
или </bxtwt>
или <bxtwt>
или </sftxt>
ибо если текст имеет другой формат, допустим
<hr class="h1"><div class="text">qwerty</div>123456<br><hr class="h1">
то тогда в этом случае <hr class="h1">
мы не трогаем
я бы советовал использовать класс simple_dom_html_parser php, сделать селектор типа
foreach($html->find('hr.h1') as $elem) {
// здесь ищем в $elem теги из задачи
// ...
// при необходимости удаляем
// ...
}//foreach($html->find('hr.h1') as $elem)
Если интересует решение на чистых регулярках, то вот один из вариантов:
$string = '
<hr class="h1"><sftxt>Hello World!</sftxt><hr class="h1">
<hr class="h1"><bxtwt>Hello World!</bxtwt><hr class="h1">
<hr class="h1"><div class="text">qwerty</div>123456<br><hr class="h1">
';
$pattern = '~
(?:<hr[^>]*>(?=(?:<sftxt>|<bxtwt>))|
(?<=(?:</sftxt>|</bxtwt>))<hr[^>]*>)
~x';
echo preg_replace($pattern, '', $string);
/* Результат:
<sftxt>Hello World!</sftxt>
<bxtwt>Hello World!</bxtwt>
<hr class="h1"><div class="text">qwerty</div>123456<br><hr class="h1">
*/
Вот решение в лоб:
$text = '<hr class="h1"><sftxt>Hello World!</sftxt><hr class="h1">';
$text = preg_replace('/<hr class=\"h1\">\$*(?=<sftxt>|<bxtwt>|<\/sftxt>|<\/bxtwt>)/', '', $text);
echo preg_replace('/(?<=<sftxt>|<bxtwt>|<\/sftxt>|<\/bxtwt>)\$*<hr class=\"h1\">/', '', $text);
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Шлю сообщение через функцию mail ,обработчик пишет,что все ок -сообщение отправлено,но сообщение не приходит на emailМожет нужно как-то на хостинге...
Ребята кто сможет мне помочь в реализации фильтра средствами yii2, напишу честно я не понимаю как его сделать
ПриветКак обработать запрос к PostgreSQl, если он вернул 0 rows? Например, я делаю запрос: