Cela aiderait-il?
$str = '<img href="" src="" alt="" />';
preg_replace('/(<img[^>]+>)/', '<a href="" ...>$1</a>', $str));
Aussi, preg_replace_callback
vous donne une grande puissance en termes de détermination dynamique le contenu réel de la balise <a>
.
EDIT: Pour protéger contre le défaut @Amber a souligné, ce modèle devrait aider:
'#(<img[^>]+ alt="[^"]*" />)#'
YMMV avec qui, en fonction de l'uniformité de vos <img>
tags. Est-alt toujours présent et le dernier attribut, avec des espaces simples autour etc.
EDIT: Re: copier le src de img un est href:
preg_replace('#(<img[^>]+ src="([^"]*)" alt="[^"]*" />)#', '<a href="$2" ...>$1</a>', $str)
Et encore .. ce s'attend à l'uniformité de vos img
étiquettes originales . Si elles sont créées par vous, vous pouvez être bon tel quel. Sinon, vous voudrez protéger contre les attributs manquants, l'ordre variable, les guillemets doubles ou simples, etc.
http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags – Amber