Поможет ли это?
$str = '<img href="" src="" alt="" />';
preg_replace('/(<img[^>]+>)/', '<a href="" ...>$1</a>', $str));
Кроме того, preg_replace_callback
дает вам большие возможности в плане динамического определения фактического содержимого тега <a>
.
РЕДАКТИРОВАТЬ: Чтобы защитить от недостатка @Amber указал, этот шаблон должен помочь:
'#(<img[^>]+ alt="[^"]*" />)#'
YMMV с этим, в зависимости от однородности ваших <img>
тегов. Всегда присутствует alt и последний атрибут, с одним пробелом вокруг и т. Д.
РЕДАКТИРОВАТЬ: Re: копирование src img в Href:
preg_replace('#(<img[^>]+ src="([^"]*)" alt="[^"]*" />)#', '<a href="$2" ...>$1</a>', $str)
И снова .. это ожидание единообразия от ваших оригинальных тегов img
. Если они созданы вами, вы можете быть хорошими, как есть. Если нет, то вы хотите защитить от пропущенных атрибутов, различного порядка, двойных и одинарных кавычек и т. Д.