Seite 1 von 1

Link Problem

Verfasst: 05.03.2006 17:10
von Creasure
Hallo,

wie kann ich auf eine Datei verlinken, die zB eine Klammer (oder einige andere Sonderzeichen) hat.

Hier mal ein Beispiel was nicht geht:
http://www.hdr-sum2.de/downloads/LOTRBMpcMAN(DE).pdf

Hat jemand eine Idee, wie ich das bewerkstelligen kann?

Ich weiß, dass solche Dateinamen für den A* sind, aber leider tauchen diese bösen Teile trotzdem ab und an auf :(

Gruß
C

Verfasst: 05.03.2006 20:03
von cYbercOsmOnauT
Das mit den Klammern hab ich letztens schon für einen gelöst. "Andere Zeichen" müsstest Du erst mal auflisten, damit sie in die Regex eingebaut werden können.

Hier jedenfalls die Lösung für die Klammern in der URL:

Code: Alles auswählen

#
#-----[ OPEN ]------------------------------------------
#
includes/bbcode.php

#
#-----[ FIND ]------------------------------------------
#
$patterns[] = "#\[url\]([\w]+?://([\w\#$%&~/.\-;:=,?@\]+]|\[(?!url=))*?)\[/url\]#is";

#
#-----[ REPLACE WITH ]------------------------------------------
#
$patterns[] = "#\[url\]([\w]+?://([\w\#$%()&~/.\-;:=,?@\]+]|\[(?!url=))*?)\[/url\]#is";

#
#-----[ FIND ]------------------------------------------
#
$patterns[] = "#\[url\]((www|ftp)\.([\w\#$%&~/.\-;:=,?@\]+]|\[(?!url=))*?)\[/url\]#is";

#
#-----[ REPLACE WITH ]------------------------------------------
#
$patterns[] = "#\[url\]((www|ftp)\.([\w\#$%()&~/.\-;:=,?@\]+]|\[(?!url=))*?)\[/url\]#is";

#
#-----[ FIND ]------------------------------------------
#
$patterns[] = "#\[url=([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]#is";

#
#-----[ REPLACE WITH ]------------------------------------------
#
$patterns[] = "#\[url=([\w]+?://[\w\#$%()&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]#is";

#
#-----[ FIND ]------------------------------------------
#
$patterns[] = "#\[url=((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]#is";

#
#-----[ REPLACE WITH ]------------------------------------------
#
$patterns[] = "#\[url=((www|ftp)\.[\w\#$%()&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]#is";

#
#-----[ FIND ]------------------------------------------
#
$ret = preg_replace("#(^|[\n ])([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*)#is", "\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $ret);

#
#-----[ REPLACE WITH ]------------------------------------------
#
$ret = preg_replace("#(^|[\n ])([\w]+?://[\w\#$%()&~/.\-;:=,?@\[\]+]*)#is", "\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $ret);

#
#-----[ FIND ]------------------------------------------
#
$ret = preg_replace("#(^|[\n ])((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]*)#is", "\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>", $ret);

#
#-----[ REPLACE WITH ]------------------------------------------
#
$ret = preg_replace("#(^|[\n ])((www|ftp)\.[\w\#$%()&~/.\-;:=,?@\[\]+]*)#is", "\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>", $ret);


#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM
Eigentlich muss man nicht replacen. Wenn Du Dir die Zeilen genauer ansiehst, wirst Du bemerken, das nur jeweils () an eine Stelle in der Regex eingebaut wurde.

Grüße,
Tekin

Klasse!

Verfasst: 05.03.2006 21:28
von Creasure
Vielen Dank,

ich bin zwar nicht so derjenige, der es mit regulären Ausdrücken hat, aber der Tipp war Gold wert. ;)

Funktioniert! Super!

Verfasst: 23.04.2006 20:11
von
danke! war genau was ich suchte :D

Verfasst: 14.04.2007 10:38
von mark05
hat sich erledigt , bin wohl ausversehen auf das feld "bbcode" deaktivieren
gekommen .

shame on me

holger

hi

ich habe das ganze mal eingefuegt weil ich auch das problem hatte mit der
() in der url.

das funktioniert auch soweit.

kann es sein das das jedoch dadruch das quoting nicht mehr geht ?
z.b. zitieren

holger

Verfasst: 14.11.2007 08:46
von Kangaxx
Ah, danke. Hatte das Problem nämlich häufig mit urls zur Wikipedia.

@mark05: Das mit dem Quote kann ich nicht bestätigen, bei mir geht das Zitieren danach ganz normal.

Verfasst: 24.01.2008 08:32
von stoertie
Hallo zusammen,

ich hole diesen Beitrag mal aus der Versenkung hervor....

Ich habe das Problem, dass ich aus dem Forum heraus einen Zugriff auf ein Passwortgeschütztes Verzeichnis verlinken möchte.

Die URL sieht demnach folgendermaßen aus:

http://<username>:<passwort>@www.xxxxx- ... x/xxxx.pdf

Ich habe die bbcode.php analog angepasst... aber leider tut sich nichts...

Der Link wird im Forum zwar als Link angezeigt, ist aber ohne Funktion (auch in der Statuszeile erscheint nichts, wenn man mit dem Mauszeiger drauf geht.

Hat jemand eine Idee?

Vielen Dank im Voraus und viele Grüße
Michael