Mailinglisten-Archive |
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