ugrás a tartalomhoz

HTML linkek cseréje dinamikusan

sandrosdj · 2017. Júl. 26. (Sze), 13.14
Kedves fórumozók!

A következő problémára keresek stabilabb megoldást:

Adott egy HTML kód, melyben vannak linkek (nem szövegesen, azok is rendes html tag-ek).
Ezeket a linkeket runtime ki kellene cserélni úgy, hogy az eredeti link urlencode-al bekerülne az url paraméter értékeként.

Pl.:
eredeti html: <a href="http://om.g/?asd" style="border:1px">Link</a>
kimenet: <a href="http://redi.r/?url=http%3A%2F%2Fom.g%2F%3Fasd" style="border:1px">Link</a>

Jelenleg így csinálom:
preg_replace_callback('/<a\\shref="(.*?)">(.*?)<\\/a>/is', function($m) use($uzenet) {
										return '<a href="http://redi.r/?uzenet='.$uzenet.'&amp;&amp;url='.urlencode($m[1]).'">'.$m[2].'</a>';
									}, $original);
Ezzel az a gond, ha van utána más attribútum is, akkor az is az url része lesz a kimenetben.

Mit kellene változtatni a regex-en?
 
1

You can't parse [X]HTML with regex

Poetro · 2017. Júl. 26. (Sze), 13.34
2

Teljesen igazad van,

sandrosdj · 2017. Júl. 31. (H), 14.24
Teljesen igazad van, megcsináltam DOMDocument-el. :D