Hallo zusammen
Der Esel steht mal wieder bockend am Berg .
Meine Webseite hab ich so gebaut, dass ich den Inhalt via WYSIWIG-Editor verwalten kann. Im IE hat das den "unschönen" Umstand, dass E-Mail-Adressen automatisch in MAILTO-Links umgewandelt werden. Und genau das möchte ich nicht.
Nun hab ich mir mit langem suchen folgendes kleines Script zusammen gestrickt, welches beim Auslesen eines Textes diese automatisch erstellten Links ersetzen soll:
Was macht das:
Mein Problem: preg_replace zerhaut mit alle Links, nicht nur die MAILTO.
Wie muss ich den regulären Ausdruck erweitern, damit der wirklich nur noch die Mail-Links berücksichtig?
Danke & Gruss
Philipp
Der Esel steht mal wieder bockend am Berg .
Meine Webseite hab ich so gebaut, dass ich den Inhalt via WYSIWIG-Editor verwalten kann. Im IE hat das den "unschönen" Umstand, dass E-Mail-Adressen automatisch in MAILTO-Links umgewandelt werden. Und genau das möchte ich nicht.
Nun hab ich mir mit langem suchen folgendes kleines Script zusammen gestrickt, welches beim Auslesen eines Textes diese automatisch erstellten Links ersetzen soll:
Code:
// mailto-Links in $t entfernen, übrig bleibt die Mailadresse als einfacher Text $suchmuster = '#<a(.*)>(.*)</a>#'; $ersetzung = '\2'; $string = preg_replace($suchmuster, $ersetzung, $t); //echo $string; // Mailadressen in $string auslesen und in Array $result schreiben if(preg_match_all("/\b\w[\w|\.|\-]+@\w[\w|\.|\-]+\.[a-zA-Z]{2,4}\b/",$string,$result)) $result = array_pop($result); // alle Vorkommen von Mailadressen in $string ersetzen mit verschlüsseltem Mailto-Link $count = count($result); for($i=0;$i<$count;$i++){ $cryptm = convema($result[$i]); // die Mailadressen in $string mit den verschlüsselten Mailadressen ersetzen $string = str_replace($result[$i], $cryptm, $string); }
- preg_replace --> sollte nach MAILTO-Links suchen und diese ersetzen, die Mailadresse aber als Text stehen lassen.
- preg_match_all --> Filtert alle Mailadressen im Text und schreibt diese in ein Array.
- convema() --> "Verschlüsselt" die Adressen und erstellt einen entsprechenden MAILTO-Link, damits Spamer etwas schwerer haben.
Mein Problem: preg_replace zerhaut mit alle Links, nicht nur die MAILTO.
Wie muss ich den regulären Ausdruck erweitern, damit der wirklich nur noch die Mail-Links berücksichtig?
Danke & Gruss
Philipp
Kommentar