我有一個preg_replace_callback
它採用閉包(匿名)函數作爲第二個參數,它在本地工作上完美無瑕,但是當我將其部署到實際環境時,它會導致錯誤=>內部服務器錯誤500.當我刪除閉合它的作品。作爲preg_replace_callback的參數的PHP封閉函數導致內部服務器錯誤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
Like @boobiq我猜你的服務器很可能沒有使用PHP 5.3 – rdlowrey