Ok, ich habe ein Template, in welchem sowohl Links als fertige Links (also mit "<a..." usw.) als auch Text-Links (nur die URL) enthalten sind. Beim Parsen sollen die Text-Links in richtige Links gewandelt werden, die bereits fertigen Links sollen allerdings nicht doppelt gelinkt werden (also z.B. "<a href=...<a ...") usw.).
Wie ist das zu realisieren?
Hier der derzeitige Stand:
Ich denke mal man müsste mit preg_match auf die Links über prüfen als z.B: if (preg_match("<a *>*</a>",$text)) { ... } aber das geht so einfach nicht. Wäre wirklich dankbar für eine Hilfe.
Wie ist das zu realisieren?
Hier der derzeitige Stand:
Code:
Routine: $search = array("/([\w\.\/\&\=\?\-]+)@([\w\.\/\&\=\?\-]+)/","/((ftp(7?):\/\/)|(ftp\.))([\w\.\/\&\=\?\-]+)/","/((http(s?):\/\/)|(www\.))([\w\.\/\&\=\?\-]+)/"); $replace = array ("<a href='mailto:$1@$2'>$1@$2</a>","<a href='ftp$3://$4$5' target='_blank'>$4$5</a>","<a href='http$3://$4$5' target='_blank'>$4$5</a>"); $text = preg_replace ($search, $replace, $text);
Code:
Source: [email]testadresse@irgendwas.de[/email] (als Link) [email]testadresse@irgendwas.de[/email] [url]www.irgendwas.de[/url] (als Link) [url]www.irgendwas.de[/url] [url]http://www.irgendwas.de[/url] (als Link) [url]http://www.irgendwas.de[/url]
Code:
Ergebnis: <a href="mailto:<a href='mailto:testadresse@myhouse.gov'>testadresse@myhouse.gov</a>"><a href='mailto:testadresse@myhouse.gov'>testadresse@myhouse.gov</a><br> </a><a href='mailto:testadresse@myhouse.gov'>testadresse@myhouse.gov</a><br> <a href="<a href='http://www.irgendwas.de' target='_blank'>[url]www.irgendwas.de[/url]</a>"> <a href='http://www.irgendwas.de' target='_blank'>[url]www.irgendwas.de[/url]</a><br> </a><a href='http://www.irgendwas.de' target='_blank'>[url]www.irgendwas.de[/url]</a></font><font size="1"><a href="<a href='http://www.irgendwas.de' target='_blank'>[url]www.irgendwas.de[/url]</a>"><br> <a href='http://www.irgendwas.de' target='_blank'>[url]www.irgendwas.de[/url]</a></a><br> <a href='http://www.irgendwas.de' target='_blank'>[url]www.irgendwas.de[/url]</a>
Kommentar