Функция eregi_replace() устарела
Я получаю это сообщение об ошибке при попытке поддержки платежного шлюза:
Message: Function eregi_replace() is deprecated
Message: Function eregi_replace() is deprecated
Этот код относится к платежному шлюзу.
$response = eregi_replace ( "[[:space:]]+", " ", $response );
$response = eregi_replace ( "[\n\r]", "", $response );
Любая помощь в решении этой ошибки была бы отличной!
4 ответа
Решение
Когда функция устарела, это означает, что она больше не поддерживается, и ее использование не рекомендуется. На самом деле все eregi
функции устарели.
Вы должны попробовать другую функцию, такую как preg_replace()
, Это может означать, что вы должны отредактировать свое регулярное выражение.
Это должно работать
$response = preg_replace ("/\s+/", " ", $response);
$response = preg_replace ("/[\r\n]/", "", $response);
Измените эти строки на
$response = preg_replace ( "~[ ]+~", " ", $response );
$response = str_replace ( array("\n", "\r"), "", $response );
который использует str_replace
& preg_replace
, не осуждаемые функции.
Измените эти строки на
$response = preg_replace ( "/[[:space:]]+/", " ", $response );
$response = preg_replace ( "/[\n\r]/", "", $response );
который использует PCRE, предпочтительный двигатель и причину, по которой EREG устарел.
Этот код будет работать для этого:
$response = preg_replace("#[\r\n]#", "", $response);
$response = preg_replace("#\s+#m", "$1", $response);