BBCODE andersrum
hannes
- php
Hallo.
Ich habe z.B. einen Tet mit dem Inhalt:
'111111[CODE]2222[CODE]000000[/CODE]2222[/CODE]333333'
Nun hätte ich das gern so, das ich in einen String '111111' habe in einen andern '333333' und dann noch einen mit dem Rest.
Wie kann ich sowas relativ einfach bewerkstelligen?
Im endeffekt möchte ich alles umwandeln was ausserhalt von [CODE] und [/CODE] stehen umwandeln.
BBCodes wandle ich mit:
$Text=preg_replace("/[b](.*?)[/b]/si","<b>\1</b>", $Text);
Nur andersrum hab ich das noch nicht hinbekommen.
Danke Zannes
Hallo hannes.
Ich habe z.B. einen Tet mit dem Inhalt:
'111111[CODE]2222[CODE]000000[/CODE]2222[/CODE]333333'
Nun hätte ich das gern so, das ich in einen String '111111' habe in einen andern '333333' und dann noch einen mit dem Rest.
Wie kann ich sowas relativ einfach bewerkstelligen?
Mit Hilfe von preg_split:
$str_test = '111111[CODE]2222[CODE]000000[/CODE]2222[/CODE]333333';
$arr_test = preg_split('!\[/?CODE\]!', $str_test);
echo $arr_test[1]; # 2222
Einen schönen Dienstag noch.
Gruß, Mathias
Danke, das hilft mir schonmal weiter :-)
Leider komme ich noch nicht zu dem gewünschten Erfolg.
Ich wollte ja damit erreichen, das ich alles was ausserhalb von [CODE] und [/CODE] ist ändern kann.
das klappt ja auch gut, sobald nur einmal [CODE] und [/CODE] vorkommt.
Gibt es mehrere, oder sogar verschachtelte, komme ich nicht weiter.
Gruß ZZ und noch n schönen Donnerstag :-)
Hallo hannes.
Ich habe z.B. einen Tet mit dem Inhalt:
'111111[CODE]2222[CODE]000000[/CODE]2222[/CODE]333333'
Nun hätte ich das gern so, das ich in einen String '111111' habe in einen andern '333333' und dann noch einen mit dem Rest.
Wie kann ich sowas relativ einfach bewerkstelligen?Mit Hilfe von preg_split:
$str_test = '111111[CODE]2222[CODE]000000[/CODE]2222[/CODE]333333';
$arr_test = preg_split('![/?CODE]!', $str_test);
echo $arr_test[1]; # 2222
>
>
> Einen schönen Dienstag noch.
>
> Gruß, Mathias
>
Hallo Zappzarapp.
Ich wollte ja damit erreichen, das ich alles was ausserhalb von [CODE] und [/CODE] ist ändern kann.
das klappt ja auch gut, sobald nur einmal [CODE] und [/CODE] vorkommt.
Gibt es mehrere, oder sogar verschachtelte, komme ich nicht weiter.
Das heißt, du suchst eine richtige Parserklasse.
Einen schönen Freitag noch.
Gruß, Mathias
Hallo hannes,
Im endeffekt möchte ich alles umwandeln was ausserhalt von [CODE] und [/CODE] stehen umwandeln.
Dann würde ich den Text so bearbeiten:
$text = '[/CODE]'.$text.'[CODE]';
Dann machst du das mit
$text = preg_replace("/[/CODE](.*)[CODE]/Usi","<b>\1</b>", $text);
Ich bin jetzt nicht wirklich fit in Regex, aber ich meine das U hinten müsse da hin, damit das Ganze nicht gierig ist, ansonsten wird direkt das erste und letzte CODE genommen.
http://de.php.net/manual/de/reference.pcre.pattern.modifiers.php
Gruß,
Dodwin