Кто-нибудь знает, как я буду преобразовывать следующий код в php 5.3?convert eregi to php 5.3
if (eregi('^(' . $value . ')(;q=[0-9]\\.[0-9])?$', $this->browser_languages[$i]) && isset($this->catalog_languages[$key])) {
Благодаря
-Джеймс
Кто-нибудь знает, как я буду преобразовывать следующий код в php 5.3?convert eregi to php 5.3
if (eregi('^(' . $value . ')(;q=[0-9]\\.[0-9])?$', $this->browser_languages[$i]) && isset($this->catalog_languages[$key])) {
Благодаря
-Джеймс
Функции Ерег стали устаревшими, заменить их с функциями PCRE
http://www.php.net/manual/en/ref.pcre.php
http://php.net/manual/en/reference.pcre.pattern.posix.php
Редактировать:
Чтобы изменить с eregi на preg_match, вам нужно выбрать символ, который будет сервером в качестве разделителя (я часто выбираю #), и добавить после разделителя флаг i (что означает нечувствительность к регистру).
Вы пример:
if (eregi('^(' . $value . ')(;q=[0-9]\\.[0-9])?$', $this->browser_languages[$i])
&& isset($this->catalog_languages[$key])) {}
Станет:
if (preg_match('#^(' . $value . ')(;q=[0-9]\\.[0-9])?$#i', $this->browser_languages[$i])
&& isset($this->catalog_languages[$key])) {}
Это минимум вам нужно (обратите внимание, что вам может понадобиться использовать preg_quote()
для $value
, но я не добавлял его примечание усложняет ситуацию на данный момент)
еще одно примечание: если вы хотите конвертировать ereg (not eregi), вам не нужно добавлять флаг i.
preg_match()
с модификатором i (PCRE_CASELESS)
является предлагаемой альтернативой.
Я по-прежнему не мудрее, с каким кодом его изменить. – jimbeeer
Спасибо, но я по-прежнему абсолютно не мудрее относительно того, как его преобразовать, поскольку я не совсем понимаю, что на самом деле делает eregi. – jimbeeer
eregi - это функция для сопоставления регулярных выражений, если вы не знаете, что такое регулярные выражения, вы можете немного прочитать о них здесь. Http://en.wikipedia.org/wiki/Regular_expression – Oussama
извините за мой короткий ответ, но моя ситуация в том, что я только что переместил сайт клиентов на новый сервер, и он вызывает эту ошибку на домашней странице. Я должен исправить это так быстро, как только смогу, прежде чем он заметит. Я не уверен, что я заслуживаю того, чтобы меня изменили. – jimbeeer