Link Problem

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Creasure
Mitglied
Beiträge: 4
Registriert: 28.01.2006 19:36

Link Problem

Beitrag 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
Benutzeravatar
cYbercOsmOnauT
Ehemaliges Teammitglied
Beiträge: 3820
Registriert: 18.02.2004 23:02
Wohnort: Göttingen
Kontaktdaten:

Beitrag 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
• prof. phpbb-Installation, Reparatur, Rettung nach Hackattacken, sowie PHP/JS Programmierung aller Art
Zend Certified Engineer, Linux Administrator und die Sicherheit von 34 Jahren Programmiererfahrung
• Interesse? Kontakt unter t.birduezen@web-coding.eu
Creasure
Mitglied
Beiträge: 4
Registriert: 28.01.2006 19:36

Klasse!

Beitrag 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!
Mitglied
Beiträge: 19
Registriert: 27.05.2005 08:56

Beitrag von »

danke! war genau was ich suchte :D
mark05
Mitglied
Beiträge: 69
Registriert: 19.12.2006 09:49
Wohnort: 51427 Bergisch Gladbach
Kontaktdaten:

Beitrag 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
Benutzeravatar
Kangaxx
Mitglied
Beiträge: 60
Registriert: 29.10.2006 10:30
Wohnort: Elmenhorst bei Rostock
Kontaktdaten:

Beitrag 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.
stoertie
Mitglied
Beiträge: 86
Registriert: 30.09.2005 20:02
Kontaktdaten:

Beitrag 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
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“