Edemund
Erfahrenes Mitglied
Hallo,
ich habe nur ein kleines Problem komme aber damit momentan nicht weiter.
Ich verwende folgenden Pattern für einen RegExp, der eine Url samt Bezeichnung in einen Link umwandelt.
(den url- BBCode habe ich schnell mit einem Punkt versehen, damit es keine Probleme mit dem Forum gibt, da ich eine entsprechende Funktion nicht gefunden habe)
in php:
Das funktioniert einwandfrei für "einfache" Syntax, dh.
Sobald ich jedoch den Link selbst formatieren möchte, dh. einen anderen Replacer einsetze, funktioniert es nicht mehr.
Bsp:
Das zum einen natürlich deshalb, weil der Pattern für den beliebigen Text keine eckige schließende Klammer enthält
vgl.
Füge ich jedoch jetzt diese Klammer hinzu und escape sie mit einem Backslash funktioniert es auch nicht, auch wenn ich den Backslash selbst wieder escape.
Was mache ich falsch?
Vielen Dank schon einmal,
Liebe Grüße,
Edemund
ich habe nur ein kleines Problem komme aber damit momentan nicht weiter.
Ich verwende folgenden Pattern für einen RegExp, der eine Url samt Bezeichnung in einen Link umwandelt.
(den url- BBCode habe ich schnell mit einem Punkt versehen, damit es keine Probleme mit dem Forum gibt, da ich eine entsprechende Funktion nicht gefunden habe)
Code:
[ .url=([-_./a-zA-Z0-9()[!&%#?,'=:~<>]+)\]([-_./a-zA-Z0-9()[!&%#?,'=:~<>]+)\[ /.url]
in php:
PHP:
$inhalt = eregi_replace("\[ url=([-_./a-zA-Z0-9()[!&%#?,'=:~<>]+)\]([-_./a-zA-Z0-9()[!&%#?,'=:~<>]+)\[ /url]",
"<a href=\"\\1\" target=\"_blank\">\\2</a>", $inhalt);
Das funktioniert einwandfrei für "einfache" Syntax, dh.
Code:
[.url=http://seite.de]Bezeichnung[/.url]
Sobald ich jedoch den Link selbst formatieren möchte, dh. einen anderen Replacer einsetze, funktioniert es nicht mehr.
Bsp:
Code:
[.url=http://seite.de][weitereformatierung]Bezeichnung[/weitereformatirung[/.url]
Das zum einen natürlich deshalb, weil der Pattern für den beliebigen Text keine eckige schließende Klammer enthält
vgl.
Code:
([-_./a-zA-Z0-9()[!&%#?,'=:~<>]+)
Füge ich jedoch jetzt diese Klammer hinzu und escape sie mit einem Backslash funktioniert es auch nicht, auch wenn ich den Backslash selbst wieder escape.
Code:
([-_./a-zA-Z0-9()[!&%#?,'=:~\\]<>]+)
Was mache ich falsch?
Vielen Dank schon einmal,
Liebe Grüße,
Edemund