Ich möchte alle Übereinstimmungen mit preg_replace
ersetzen, aber es funktioniert nur einmal.PHP preg_replace alle Übereinstimmungen
Hier Funktion i verwendet:
function bbc2html($text) {
$find = array(
'~\[spoiler\](.*?)\[/spoiler\]~s'
);
$replace = array(
'<font color="red"><b>ATTENTION: SPOILER ALARM!</b></font><br>$1'
);
return preg_replace($find,$replace,$text);
}
Eingang:
echo bbc2html('[spoiler]Its a spoiler[/spoiler]');
echo bbc2html('[spoiler][spoiler]Its a multiple spoiler[/spoiler][/spoiler]');
Ausgang:
<font color="red"><b>ATTENTION: SPOILER ALARM!</b></font><br>Its a spoiler
<font color="red"><b>ATTENTION: SPOILER ALARM!</b></font><br>[spoiler]Its a multiple spoiler[/spoiler]
es in einer while-Schleife zu werfen oder sehen https://stackoverflow.com/questions/18445296/preg-replace-all-occurrences-in-string-withing-defined -delimeter – clearshot66
@ chris85 im tut mir leid, dass ich das vergessen habe, ich habe jetzt –
hinzugefügt Okay, also hast du geschichtete Tags. Sie sollten einen BBCode-Parser verwenden, keine Regex. – chris85