"We are back" « oc.at

PHP preg_replace Frage zur Regex

kleinerChemiker 24.02.2007 - 21:06 526 2
Posts

kleinerChemiker

Here to stay
Avatar
Registered: Feb 2002
Location: Wien
Posts: 4303
Ich will einen Text durchsuchen und Links auf Dateien finden. Dafür habe ich ein Array mit erlaubten Hosts und ein Array mit den zu findenden Extensions. Ziel ist es nach dem "<a" ein onclick-Event hinzuzufügen. Dazu habe ich diese Regex gebastelt, kann die passen? Oder gibt es eine bessere Lösung dafür?

Code:
/(<a)( [a-z0-9_\-\/\."]*href="?' . trim($hosts[$i]) . '[a-z0-9_\-\/\."]*\.' . trim($extensions[$j]) . '"?[a-z0-9_\-\/\."]*>)/si

Ersetzen will ich es dann durch

Code:
\\2 onclick="jsevent()"\\3

tia

MIK

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25539
überprüf es mit dem Regex Buddy oder "The Regulator" (freeware).

prinzipiell wäre es besser wenn du jeden link über eine zentrale stelle laufen lassen würdest, die dann je nach input richtig weiterleitet.

also quasi <a href="/link.php?host=123&resource=bla.gif" ..>

gue

Addicted
Avatar
Registered: Feb 2003
Location: Linz
Posts: 400
Nur so eine Idee:
Du könntest das ganze auch mit Javascript lösen: Alle <a>s mit document.getElementByTagName herausfinden und dann zu allen passenden ein onclick event hinzufügen. Im Javascript selbst müssten einfache String-Vergleiche reichen.
Dadurch müsstest du nicht am Server die Texte mit vielen dieser Regexen absuchen sondern könntest die Arbeit auf den Client abwälzen.
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz