Ich versuche, meinen Client die Möglichkeit zu geben, eine Funktion, die verschiedene Code-Snippets hat, durch einen kurzen Code in ihrem WYSIWYG-Editor eingefügt.PHP ersetzen regulären Ausdruck anstelle von Zeichenfolge ersetzen
Zum Beispiel werden sie so etwas wie schreiben ...
[getSnippet(1)]
Das ist mein getSnippet nennen ($ id) PHP-Funktion und geben die entsprechenden 'Brocken'.
Es funktioniert, wenn ich hart Code der $ id so ...
echo str_replace('[getSnippet(1)]',getSnippet(1),$rowPage['sidebar_details']);
Aber ich möchte wirklich dynamisch die '1' machen. Ich bin irgendwie auf dem richtigen Weg mit so etwas wie ...
function getSnippet($id) {
if ($id == 1) {
echo "car";
}
}
$string = "This [getSnippet(1)] is a sentence.This is the next one.";
$regex = '#([getSnippet(\w)])#';
$string = preg_replace($regex, '. \1', $string);
//If you want to capture more than just periods, you can do:
echo preg_replace('#(\.|,|\?|!)(\w)#', '\1 \2', $string);
Nicht ganz :(
Was funktioniert nicht mit Ihrem Code? – hakre
Schau dir 'preg_replace_callback()' an. Sie können eine Funktion angeben, die die Bits der Zeichenfolge empfängt, die von einer regulären Ausgabe abgeglichen wurden, und die Ersetzung zurückgibt. – Barmar