Autor Zpráva
Fuzzy
Profil
Dobrý den,
potřeboval bych pomoc s úpravou IMG pomocí preg_replace:
mám text:
$text = "some text <img src=\"../obrazek.jpg\" alt=\"obrazek\" height=\"126\" width=\"200\" moreparameters=\"value\"> some text";


kde nahradím pomocí:
$text=preg_replace('/(<img .*?src="(.+?)".*?>)/','<a href="\2">\1</a>',$text);



a výsledek je:
some text<a href="../obrazek.jpg"><img src="../obrazek.jpg" alt="obrazek" height="126" width="200" moreparameters="value"></a> some text


a já bych chtěl poprosit o radu zda jde upravit reg. výraz tak, aby výsledek vypadal takto:
some text <a href="../obrazek.jpg"><img src="resize.php?zdroj=../obrazek.jpg&amp;width=200&amp;heigh=300" alt="obrazek" height="300" width="200" moreparameters="value"></a> some text


tedy aby se mi upravil atribut src tak aby původní src byl jako parametr, a hodnota width a height taky jako parametr.

Děkuji za jakékoliv nakopnutí
Alphard
Profil
To by nebyl pěkný regulár, zkuste preg_replace_callback().
lordfrikk
Profil
Asi nějak takto?

<?php
$text = "some text <img src=\"../obrazek.jpg\" alt=\"obrazek\" height=\"126\" width=\"200\" moreparameters=\"value\"> some text";

function addAnchor($matches)
{	
	return sprintf('<a href="%s"><img src="resize.php?zdroj=%s&amp;width=%d&amp;height=%d"></a>', $matches[1], $matches[1], $matches[2], $matches[3]);
}

echo preg_replace_callback('#<img.*?src="(.*?)".*?height="(.*?)".*?width="(.*?)"[^>]+>#i', "addAnchor", $text);

?>

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0