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