Функция 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);
Другие вопросы по тегам