einfach wirklich, ich habe einen regulären Ausdruck geschrieben, um Tags mit PHP-Konstanten aus einem HTML-Snippet zu finden und zu ersetzen. Meine Lösung, die funktioniert, fühlt sich einfach nicht richtig an. Wie kann das verbessert werden?kann dieser reguläre Ausdruck gefunden/ersetzt werden?
preg_match_all('/\{CONSTANT_(.*)\}/', $final, $result, PREG_PATTERN_ORDER);
for ($i = 0; $i < count($result[1]); $i++) {
$final = str_replace($result[0][$i], constant($result[1][$i]),$final);
}
bekommen Haben Sie nicht ein '?' In Ihrem '(. *)'? (dh sollte '(. *?) \}' sein oder den Modifizierer U/PCRE_UNGREEDY verwenden, siehe http://www.php.net/manual/en/regexp.reference.php#regexp.reference.internal-options) Ich denke, Sie führen eine gierige Suche durch, wenn Sie also "{CONSTANT_c1} {CONSTANT_c2}" 'haben, würde die' (. *) 'Einfangende Gruppe" 'c1} {CONSTANT_c2" 'entsprechen. –