Хорошо, я думаю, причина, по которой строка поиска на этой странице не работает, связана с тем, что обновленный PHP и preg_replace
устарел. https://sparklewash.com/Использование функции Preg_Replace_Callback
Я попытался заменить функцию preg_replace
на preg_replace_callback
так, но у меня все еще возникают проблемы.
Оригинал:
function clean($string) {
$string = str_replace(' ', '-', $string); // Replaces all spaces with hyphens.
return preg_replace('/[^A-Za-z0-9\-]/', '', $string); // Removes special chars.
}
Новая версия:
function clean($string) {
$string = str_replace(' ', '-', $string); // Replaces all spaces with hyphens.
return preg_replace_callback('/(^|_)([a-z])/',
create_function ('$matches', 'return strtoupper($matches[2]);'), $string); // Removes special chars.
}
Я прошу прощения, если это легко для вас, я пытался следовать статью здесь, но я до сих пор относительно новый для PHP.
Редактировать: Я верю, что preg_replace не то, что сломало его из-за некоторых комментариев. Я задал новый вопрос, чтобы остановиться на теме: Redirect Loop on $_GET Request
'preg_replace' не устарел, а' e' был изменен. Что вы использовали? Включите предыдущее сообщение об ошибке и код. – chris85
Какую версию PHP вы используете? Если вы используете 5.3.0 или новее, вы должны использовать анонимную функцию вместо 'create_function()'. – Barmar
Я не понимаю вопроса. Исходный код не использовал 'strtoupper', зачем это нужно в обновлении? – Barmar