PHP как удалить все теги <a> вокруг <img>?

91
13 февраля 2021, 16:50

К примеру

$content='<a href="/link1"><img src="image1.jpg" /></a><a href="/link2">link2</a><a href="/link3"><img src="image2.jpg" /></a>';

как оставить?

<img src="image1.jpg" /><a href="/link2">link2</a><img src="image2.jpg" />
Answer 1
preg_replace('/<a.*?>(<img.*?)<\/a>(<a.*?<\/a>).*?(<img.*?>).*/','\1\2\3',$content);
Answer 2

Например, так

$text = preg_replace('#<a[a-zA-Z0-9\=\/\s\"]*>#', '', $content, 1);
$text = substr($text,0,-4);

Первым выражением удалением тег "a" вначале строки, вторым удаляем заключительный Перевод строк не является помехой в этом варианте

Answer 3

как оставить? <img src="image1.jpg" /><a href="/link2">link2</a><img src="image2.jpg" />

$content = '<a href="/link1"><img src="image1.jpg" /></a><a href="/link2">link2</a><a href="/link3"><img src="image2.jpg" /></a>';
$content = preg_replace('~<a[^>]*>(?=\s*<img)|/>\K\s*</a>~', '', $content);
echo $content;
Answer 4

<img src="image2.jpg" href ="/page" /> Переместил атрибут в картинку. О - Оптимизация

READ ALSO
В чём разница автозагрузчиков php?

В чём разница автозагрузчиков php?

В чем разница автозагрузчиков php spl_autoload_register, spl_autoload() и __autoload(), не могу понять

111
Математические встроенные функции PHP

Математические встроенные функции PHP

Доброго времени суток!

97
Найти несовпадающие элементы массива

Найти несовпадающие элементы массива

Нужно найти несовпадающие элементы из двух массивов и записать их в третий массивМои знания помогают мне найти совпадающие элементы, и я это...

131