Seite 1 von 1

BBCode Bug beim Parsen von URLs

Verfasst: 01.09.2006 23:44
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

Verfasst: 02.09.2006 19:58
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

Re: BBCode Bug beim Parsen von URLs

Verfasst: 03.09.2006 16:07
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);

Verfasst: 03.09.2006 16:23
von IPB_Flüchtling
Danke für den Bugfix! :P