Ich arbeite an einer "shortcode" -Funktion, um Inhalt in Text zu ersetzen, der in der Datenbank gespeichert wird.PHP regulärer Ausdruck, um Inhalt innerhalb von Klammern zu ersetzen
Ich versuche, alle Vorkommen von etwas in Doppelklammern zu finden {{ }}
, sehen, ob ein Ersatz existiert, und wenn ja, ersetzen Sie es. Ich bin schlecht auf regex und ich weiß nicht, ob dies der effizienteste Weg ist, dies zu tun:
$string = "This is a {{test}} to see if it {{works}}";
$regex = ""; // Unfortunately, I'm clueless when it comes to regex
preg_match_all($regex, $string, $matches);
$replacements = array(
'test' => 'sample',
'works' => 'exists'
);
foreach ($matches as $match) {
if (array_key_exists($match, $replacements)) {
$string = str_replace($match, $replacements[$match], $string);
}
}
return $string;
In diesem Beispiel würde ich gerne zurückkehren:
This is a sample to see if it exists
I Ich würde gerne vorsehen, wenn der "shortcode" nicht existiert, einfach im Inhalt wie er ist zu belassen.
Sie können Ihre Ausdrücke testen [hier] (https://regex101.com/). Wenn Ihre Ersetzungen jedoch so einfach sind wie im Beispiel, dann verwenden Sie 'str_replace()' (nur Klammern an Nadeln). Ansonsten würde ich 'preg_replace_callback()' in diesem Fall verwenden. – shudder
dies ist regex ''/\\\\\\\\\\\\\\\\\\\\\\"> – Robert
@JROB, wenn dies für die Verarbeitung von Shortcodes Zweck ist, können Sie meine Shortcode-Bibliothek verwenden: https://github.com/thunderer/ Shortcode mit Standard-Handler und benutzerdefiniertem Syntax-Objekt, das alles nach dem gewünschten Array erkennt und ersetzt. –