BBCode Bug beim Parsen von URLs

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
faux
Mitglied
Beiträge: 59
Registriert: 29.03.2005 20:57
Kontaktdaten:

BBCode Bug beim Parsen von URLs

Beitrag von faux »

Hallo!

Weiß nicht, wo man hier Bug posten kann, aber ich denke mal, dass die RegEx aus der bbcode.php:

Code: Alles auswählen

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

Code: Alles auswählen

#(^|[\n ])((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]{2,})#is
(oder so ähnlich, ev. mit zwingendem Punkt (#(^|[\n ])((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]+\.[\w\#$%&~/.\-;:=,?@\[\]+]+)#is (Quick'n Dirty))) lauten sollte, da es sowieso keine einstelligen URLs gibt und sonst jedes ftp. oder www. zu einem Link wird. Ist mir aufgefallen, als ich nen Satz mit ftp beendete. ;)

Grüße
Faux
Dennis63
Ehemaliges Teammitglied
Beiträge: 2597
Registriert: 02.07.2003 18:46

Beitrag von Dennis63 »

Wenn das ein phpBB Fehler ist, wäre es das beste, Du meldest den an die Entwickler.

www.phpbb.com/bugs

Ob jedoch so ein (kleiner) Fehler in der 2er Version noch behoben wird, bezweifel ich, da ja von der 3er Version schon eine Beta draußen ist.

Grüße
Dennis
Benutzeravatar
saerdnaer
Ehemaliges Teammitglied
Beiträge: 4268
Registriert: 21.04.2001 02:00

Re: BBCode Bug beim Parsen von URLs

Beitrag von saerdnaer »

es würde schon reichen das * durch nen + zu ersetzen:
$ret = preg_replace("#(^|[\n ])((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]+)#is", "\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>", $ret);
IPB_Flüchtling
Mitglied
Beiträge: 1862
Registriert: 23.12.2004 22:46

Beitrag von IPB_Flüchtling »

Danke für den Bugfix! :P
Antworten

Zurück zu „Coding & Technik“