Ich hab mal ein wenig experimentiert. Email-Adressen die dierekt im Text stehen werden so umgewandelt. Der Betreff allerdings nur bis zum ersten Leerzeichen. Sonst kann nicht ermittelt werden wann der Link endet und der Text weitergeht.
Sinnvoller wäre daher wohl das [email]-Tag anzupassen.
Hier also mal die Änderung:
Code: Alles auswählen
----- öffne -----
/includes/bbcode.php
----- finde -----
$ret = preg_replace("#(^|[\n ])([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i", "\\1<a href=\"mailto:\\2@\\3\">\\2@\\3</a>", $ret);
----- ersetze mit -----
$ret = preg_replace("#(^|[\n ])([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)(\?)*([\w=]*)#i", "\\1<a href=\"mailto:\\2@\\3\\5\\6\">\\2@\\3\\5\\6</a>", $ret);
Hier noch meine Notizen (die außer mir wohl kaum einer versteht)
Code: Alles auswählen
01.
===
#(^|[\n ])
# Begrenzung am Anfang
^ Anfang doch nicht=> (hier wohl zum negieren verwendet)
| ODER? start of alternative branch
[\n ] Gruppe von verschiedenen möglichen Zeichen
\n Zeilenumbruch
02.
===
([a-z0-9&\-_.]+?)
[a-z0-9&\-_.]Kleinbuchstaben, Zahlen; und(&), Bindestrich, Unterstrich, Punkt
+ eins oder mehr der vorrangehenden Zeichen (innerhalb [] )
? unklar
02a.
====
@
@ Das Zeichen @
03.
===
([\w\-]+\.([\w\-\.]+\.)*[\w]+)
\w irgendein Buchstabe der in einem Wort vorkommen kann
\- der Bidestrich
+ eins oder mehr der vorrangehenden Zeichen (innerhalb [] )
\. der Punkt
[\w\-\.] Buchstaben, Bindestrich, Punkt
+ eins oder mehr der vorrangehenden Zeichen (innerhalb [] )
\. der Punkt
* keins oder mehr der vorrangehenden Zeichen innerhalb ()
[\w] irgendein Buchstabe
+ eins oder mehr der vorrangehenden Zeichen (innerhalb [] )
03.a
====
#i
# Begrenzung am Ende
i Groß und Kleinbuchstaben
Gruß Christian