Ich habe einen preg_replace_callback
, der eine Closure (anonyme) Funktion als 2. Parameter übernimmt und lokal einwandfrei funktioniert. Wenn ich es jedoch in die Live-Umgebung deploye, führt dies zu einem Fehler => Interner Serverfehler 500. Wenn ich die Closure entferne, funktioniert es.
$regExPattern = '/\<%(?.*?)%\>/';
$template = preg_replace_callback($regExPattern, function ($matches) use ($dataItem) {
if(isset($dataItem[trim($matches['content'])])) {
return $dataItem[trim($matches['content'])];
}
else {
return '';
}
}, $template);
Haben Sie Vorschläge, wie ich dieses Problem umgehen kann? Ich muss $dataItem innerhalb meiner Callback-Funktion verwenden und es an preg_replace_callback
übergeben. Meine Entwicklungsumgebung ist CodeIgniter.
3 Stimmen
Dein Produktions-Server gibt den Fehler nicht aus, was ein gutes Design ist. Kannst du das Fehlerprotokoll überprüfen und uns mitteilen, was der tatsächliche Fehler ist?
1 Stimmen
Besteht die Möglichkeit, dass Sie in Ihrer Entwicklungsumgebung kein PHP 5.3 haben?
0 Stimmen
Wie @boobis vermute ich, dass es sehr wahrscheinlich ist, dass Ihr Server nicht PHP 5.3 verwendet.
0 Stimmen
Ja, du hast recht, PHP Version 5.2.17. Kannst du mir helfen, eine Funktion an preg_replace_callback zu übergeben und $dataItem darin zu haben?