私はpreg_replace_callback
を持っていますが、2番目のパラメータとしてクロージャ(匿名)関数を使用しています。エラー=>内部サーバーエラー500.私はクロージャを削除すると動作します。preg_replace_callbackのパラメータとしてphp closure関数を使用すると、内部サーバーエラー500が発生します
$regExPattern = '/\<%(?<content>.*?)%\>/';
$template = preg_replace_callback($regExPattern, function ($matches) use ($dataItem) {
if(isset($dataItem[trim($matches['content'])])) {
return $dataItem[trim($matches['content'])];
}
else {
return '';
}
}, $template);
どのように私はこの問題を解決することができます。コールバック関数の中で$ dataItemを使用してpreg_replace_callback
に渡す必要があります。 私の開発環境はコードイグナイターです。
プロダクションサーバーがエラーを出力していません。これは良い設計です。エラーログを確認して、実際のエラーの内容をお知らせください。 –
あなたの開発環境にphp 5.3をインストールしていない可能性がありますか? – boobiq
@boobiqと同じですが、サーバーがPHP 5.3を使用していない可能性が高いですね。 – rdlowrey