phpbar.de logo

Mailinglisten-Archive

[php] Alle noch nicht anklickbaren Links anklickbar machen

[php] Alle noch nicht anklickbaren Links anklickbar machen

Yannik Hampe yannik at cipher-code.de
Mi Apr 14 15:32:02 CEST 2010



Ralf Eggert wrote:
> Moin,
> 
> bevor jemand nach dem Lesen des Betreffs gleich RTFM ruft, eine
> Erklärung. Ich möchte alle Links anklickbar machen, die noch nicht
> anklickbar sind. D.h. bereits anklickbare Links sollen nicht ersetzt
> werden. Habe das Internet durchforstet nach einer Lösung, aber bei
> allen, die ich ausprobiert habe, wurden auch die bereits anklickbaren
> Links nochmals geändert.
> 
> Beispieltext:
> ------------------------------------------------------------------------
> Hier steht ein http:/www.link.de und hier steht noch ein <a
> href="http:/www.anderer-link.de">http:/www.anderer-link.de</a>
> ------------------------------------------------------------------------
> 
> Alle Links zu finden, ist ja einfach, z.B. so:
> 
> preg_match_all(
>   '=((http:|https:)\/\/[^ )\r\n!<"]+)=i', $htmlBody, $linkList
> );
> 
> Nur ich stehe hier gerade wie der Ochs vorm Berg, weil ich nicht die
> Idee finde, wir ich verhindern kann, dass bereits anklickbare Links
> nochmals anklickbar werden. Das Ergebnis soll also so aussehen:
> 
> ------------------------------------------------------------------------
> Hier steht ein <a href="http:/www.link.de">http:/www.link.de</a> und
> hier steht noch ein <a
> href="http:/www.anderer-link.de">http:/www.anderer-link.de</a>
> ------------------------------------------------------------------------
> 
> Zusatz: mailto: und FTP kann vernachlässigt werden.
> 
> Hat jemand einen Tipp, um mich Ochsen den Berg hochzubekommen?

Schmeiß hinter deinen regex eine negative lookahead assertion …(?!…) 
also genauer (?!</a>), damit bekommst du nurnoch tags, die keinen 
schließenden a-tag direkt dahinter haben :-).
> 
> Danke und Gruss,
> 
> Ralf

Yannik

php::bar PHP Wiki   -   Listenarchive