Moin vlees91,
fuer ereg kann ich dir keine Loesung geben, wohl aber fuer preg:
http://de3.php.net/reference.pcre.pattern.syntax
Z.B. so:
Code:
$text = preg_replace('#\<([\w]+?://[\w\d\#$%&~/.\-;:=,?@\[\]+]*)\>#is', '[
url="\\1"]\\1[/
url]', $text);
$text = preg_replace('#\<([\w]+?://[\w\d\#$%&~/.\-;:=,?@\[\]+]*) (.*?)\>#is', '[
url="\\1"]\\2[/
url]', $text);
Sieht extremst aus, ist es aber gar nicht (*g*)
Guck dir einfach mal an, was die verschiedenen Dinge bedeuten. Grundsaetzlich kann man folgendes sagen:
das erste Zeichen ist der Delimiter, er bestimmt wo die Regexp anfaengt und wo sie aufhoert. Anschliessend nehmen wir unser <, da wir festlegen, dass die
URL zwischen < und > stehen muss.
Als naechstes wollen wir mindestens ein normales Zeichen (Buchstaben; dies wird durch das \w bestimmt, aber nur innerhalb von []) sehn, gefolgt von "://".
Anschliessend wollen wir beliebig viele Buchstaben, und noch ein paar Zeichen in der
URL sehn.
In der zweiten Gruppe muss man einige Zeichen (den Delimiter, das -, sowie []) escapen, dies geschieht mit \. Will man auch noch den \ reinpacken, muss der auch escaped werden (\\).
Und fuer alles weitere: siehe den Link oben, willkommen in der wunderschoenen (
) Welt der Regular Expression
Greetz
alcaeus