bbcode filtern
kphaber321
- php
0 kphaber3210 Snafu0 Snafu0 kphaber3210 Længlich
Hallo liebes Forenvolk!
Ich habe ein kleines Problem und das größere Problem ist, dass ich nicht weiß wie ich es lösen kann!
Hole mir mit einem Script für eine Delphianwendung aus einer Forendatenbank einen Post und möchte diesen jetzt gerne von seinen bbcodes lösen, also die bbcodes einfach nur löschen!
Ich denke, dass das mit preg_replace ganz gut zu lösen sei.
Mein Problem: Ich verstehe das mit den regulären Ausdrücken einfach nicht und mal grad so einlesen klappt nich so...
könnte mir jemand den regulären Ausdruck hier posten (und vielleicht auch erklärenm wenn er/sie mag)!
Das wäre echt verdammt nett! Danke im Vorraus!
MfG
kphaber321
Hallo nochmal!
Hab jetzt mittlerweile das hier gefunden:
<?php
$text = "mööp [green]lol[/green] thing";
preg_replace('/[.*]/', '', $text);
echo $text;
?>
Das funktioniert aber nicht, er gibt genau das selbe aus wie vorher!
MfG
kphaber321
Hallo!
Hab jetzt mittlerweile das hier gefunden:
...
Das funktioniert aber nicht, er gibt genau das selbe aus wie vorher!
Weil es so aussehen sollte:
<?php
$text = "mööp [green]lol[/green] thing";
$text = preg_replace('/[.*]/', '', $text); // das ergebnis soll ja wieder in $text gespeichert werden oder ;)
echo $text;
?>
Ich habs mir damals hiermit beigebracht.
Hoplla, die eckigen Klammern müssen maskiert werden:
<?php
$text = "mööp [green]lol[/green] thing";
$text = preg_replace('/\[.*\]/', '', $text); // das ergebnis soll ja wieder in $text gespeichert werden oder ;)
echo $text;
?>
Jetzt müsste es gehen.
das ergebnis soll ja wieder in $text gespeichert werden oder ;)
richtig! boar bin ich manchmal doof... jetzt hab ich nur noch ein problem:
er löscht zuviel: das "lol" sollte ja noch stehenbleiben, tut es aber so nicht...
kann man das noch ändern?
MfG
kphaber321
Moin!
richtig! boar bin ich manchmal doof... jetzt hab ich nur noch ein problem:
er löscht zuviel: das "lol" sollte ja noch stehenbleiben, tut es aber so nicht...
Das liegt an dem .*, welches beliebig viele beliebige Zeichen frißt. Und da Regex gierig sind, frißt es so viele Zeichen wie möglich, also alles von der ersten [ bis zur letzten ]. So müßte es gehen:
<?php
$text = "mööp [green]lol[/green] thing";
$text = preg_replace('/\[[^\]]*\]/', '', $text); // "beliebiges Zeichen" ersetzt durch "alles außer ]"
echo $text;
?>
Viele Grüße vom Længlich