Mailinglisten-Archive |
Hallo Thomas, Am 14.10.2005 um 15:27 schrieb thomas.hausheer at bluewin.ch: > bins nochmals mit einem Problem: > > preg_replace('°[a-zA-Z0-9]+\.[a-zA-Z0-9]*@[a-zA-Z0-9]+\.([a-zA-Z] > {2,3}) > °','<a href="mailto:$0">$0</a>', $STRING); > > Ersetzt zwar anstandslos die eingegebenen E-Mail-Adresse aber wenn's > zwei oder mehr im Text sind, wird nur die Erste ersetzt. Auch wenn das Archiv voll sein sollte von dem Thema, noch par Kleinigkeiten dazu: Du kannst mit dem Modifier `i`, wie schon geschrieben wurde, Groß-Kleinschreibung ignorieren, dann bleibt nur noch [a-z0-9]. Wenn Du mehrere Ersetzen willst über mehrere Zeilen hilft dir der Modifier `s`, auch dies wurde ja schon geschrieben. Dann aus alter Zeit ein viele kursirrender Fehle im Internet ist: [a-zA-Z]{2,3} Wir haben mittlerweile auch Top-Level Domains die bis zu 4 Zeichen lang sind. Wie zum Bleistift .info In einer Domain kann auch ein `-` vorkommen. Und es gibt E-Mail Adressen die auch Subdomains beinhalten. Daraus ergibt sich dann sehr vereinfacht aber für den allgemein gebrauch vielleicht reichend: /[a-z0-9]+(\.[a-z0-9\-\.]+)*@([a-z0-9\-]+\.)+[a-z]{2,4}/is Gruß Aron PS.: Nicht berücksichtigt sind hier Umlaute in der Domain, da sträuben sich bei mir einfach die Nackenhaare ;)
php::bar PHP Wiki - Listenarchive