Здравствуйте. У меня на сайте есть вот такие конструкции. PHP: <blockquote> <p><b>6. Разговоры</b> </p> </blockquote> И нужно убрать тег p внутри. Это я делаю правильно вот так PHP: $old_content= preg_replace('!<blockquote><p>(.*?)</p></blockquote>!si',"<blockquote>\\1</blockquote>",$old_content); А вот есть ещё такие варианты PHP: <a href="http://site/wp-content/uploads/total-soul-2016-by-elena-kuznetsova-16.jpg"><img class="aligncenter size-medium wp-image-67540" alt="total soul 2016 by elena kuznetsova (16)" src="http://site/wp-content/uploads/total-soul-2016-by-elena-kuznetsova-16-650x862.jpg" width="650" height="862" /></a> Здесь мне нужно в таких конструкциях оставить только тег img без тега а. Как мне правильно это сделать?
немного не понял а как мне это поможет? у меня же тег а может быть в других конструкциях вида <а>test</a> . Ну и другие теги будут ещё в выдаче.
Указал какие теги можно оставить, остальные будут удалены, для второго случая подойдёт. Можно ещё через DOM получить нужное дерево и удалить в нём не нужное, смотри simplehtmldom
Мне эти варианты не подходят. я для simplehtmdom это и делаю. Мне именно до того как я начну смотреть дерево нужно заменить конструкции <a href="bla-bla"><img scr="test/test"></a> на конструкции вида <img src="test/test"> . Удалять просто тег а я не могу, т.к он может использоваться в других конструкциях вида <a href="test1"><p>test</p></a> и т.д.
да мне надо всё что в теги а, при условии если там картинка. В идеале нужно регулярку написать для этого для замены конструкций. К самом начале я написал как я сделал регулярку для обычных тегов
проще разбить на два этапа, проверить есть ли там тег img, можно и без регулярки и если есть использовать тогда регулярку для копирование всего содержимого тега "A", эту регулярку можно отыскать в интернете.
Как уже и сказали, проще заюзать DOM. К тому же какая разница до или после ты хочешь посмотреть, загрузи все в DOM сделай все что нужно и загрузи еще раз! Не вижу никаких проблем.