У меня есть код, где он работает нормально на 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);
П.С .: Мой веб-сервер 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);
iPage PHP версия в настоящее время 5.3. Обозначение массива, которое вы используете, []
только поддерживается начиная с PHP 5.4. Переключите весь код вашего массива на array()
и ты должен быть в порядке. При использовании услуг хостинга, таких как ipage, важно проверять соответствие между версиями локальной среды разработки и сервером.
В дополнение к заметкам Самрапа, вы должны использовать https://3v4l.org/ вместо phpfiddle. 3v4l гораздо более функциональный и покажет вам результаты вашего кода в нескольких различных версиях php, вместо того, чтобы предполагать, что вы используете ту версию pf php, которую использует phpfiddle. Кроме того, 3v4l покажет вам статистику производительности и т. Д.