我有一个代码,它可以在phpFiddle.org上正常运行,但是当我试图在我的网络服务器上运行它时,它出于某种原因显示内部网络错误。我想知道我做错了什么。感谢。
$text = "cheese\'s bacon cats ";
$replacement = ["cheese\'s" => "bacon", "bacon" => "apple", "cats" => "dogs"];
$search = array_map(function($v){
return preg_quote($v, "/");
}, array_keys($replacement));
echo $text = preg_replace_callback("/\b(" . implode("|", $search) . ")\b/", function($m)use($replacement){
return $replacement[$m[1]];
}, $text);
P.S:我的网络服务器是ipage.com
以下是代码的编辑版本:
$text = "apple\'s bacon cats ";
$replacement = array("apple\'s" => "bacon", "bacon" => "apple", "cats" => "dogs");
$search = array_map(function($v){
return preg_quote($v, "/");
}, array_keys($replacement));
echo $text = preg_replace_callback("/\b(" . implode("|", $search) . ")\b/", function($m)use($replacement){
return $replacement[$m[1]];
}, $text);
答案 0 :(得分:3)
iPage PHP version is currently 5.3。您使用的数组表示法[]
仅为supported as of PHP 5.4。将所有数组代码切换到array()
,你应该没问题。在使用ipage等托管服务时,检查本地开发环境版本与服务器之间的一致性非常重要。
答案 1 :(得分:2)
除了samrap的笔记,你应该使用 https://3v4l.org/ 而不是phpfiddle。 3v4l功能更丰富,它将向您展示几种不同php版本的代码结果,而不是假设您正在运行phpfiddle正在使用的任何版本的PHP。此外,3v4l将显示性能统计等。