Seite 1 von 1

BBcode aus Text zuverlässig entfernen

Verfasst: 17.03.2007 22:11
von Waagenbauer
Ich habe schon verschiedene Versionen mit preg_replace probiert und kombiniert:

Code: Alles auswählen

$posts[$i]['post_text'] = preg_replace('/\[img:[a-z0-9]{10,}\].*?\[\/img:[a-z0-9]{10,}\]/', ' ', $posts[$i]['post_text']); 
$posts[$i]['post_text'] = preg_replace('/\[\/?url(=.*?)?\]/', ' ', $posts[$i]['post_text']);
$posts[$i]['post_text'] = preg_replace("/\[\/?[a-z]=([a-z0-9\-\.,\?!%\*_\/:;~\\&$@\/=\+]+)\]/si", " ", $posts[$i]['post_text']);
$posts[$i]['post_text'] = preg_replace('/\[\/?[a-z\*=\+\-]+(\:?[a-z0-9]+)?:[a-z0-9]{10,}(\:[a-z0-9]+)?=?.*?\]/', ' ', $posts[$i]['post_text']);
Aber so ganz funzt das nicht. Z.B. Was ist mit bbcode in Großbuchstaben?
Und den URL-Tags ohne bbcode_uid?

Hat jemand ein Snippet welches alle BBcodes restlos aus dem Text löscht?

Verfasst: 18.03.2007 14:08
von Underhill
Hi,

warum so kompliziert?

Versuche mal

Code: Alles auswählen

$posts[$i]['post_text'] = preg_replace('/\[(.*)\]/is', '', $posts[$i]['post_text']);
(ungetestet)

Edit: Schau dir sonst mal die Funktion innerhalb der phpBB Fetch All 2.0.15 - MOD an - die hatten das auch recht elegant geloest...

Gruss
Underhill

Verfasst: 19.03.2007 07:46
von Waagenbauer
Thx für die Antwort.

In fetch_all steht es so:

Code: Alles auswählen

$text = preg_replace('/\:[0-9a-z\:]+\]/si', ']', $text);
Ich werde beides mal probieren. Wobei das 2. wohl keinen großgeschriebenen BBcode berücksichtigt.

Verfasst: 19.03.2007 18:57
von Underhill
Hi,

das "/i" steht fuer GROSS/kleinschreibung ingnorieren..

http://de2.php.net/manual/de/reference. ... ifiers.php


Gruss
Underhill

Verfasst: 20.03.2007 08:38
von Waagenbauer
Ah, sehr gut, vielen Dank :)