Устаревший: функция eregi () устарела

такая же ошибка поддерживалась в этих файлах admincp, которые я пытаюсь настроить на своем сервере. как я могу их решить?

Устаревший: функция eregi () устарела в C: \ xampp \ htdocs \ speedyautos \ admincp \ system_cls.php в строке 152 (показаны строки 152-155)

if (!eregi("install", $_SERVER['REQUEST_URI']) && !eregi("install", $_SERVER['PHP_SELF'])) { exit("No " . TABLE_PREFIX . "db.php Present. Please run Install first"); } 

Устаревший: функция eregi () устарела в C: \ xampp \ htdocs \ speedyautos \ admincp \ system_cls.php в строке 177 (показаны строки 177-184)

 if (!eregi("install", $_SERVER['REQUEST_URI']) && !eregi("install", $_SERVER['PHP_SELF']) && !eregi("upgrade", $_SERVER['PHP_SELF']) && !eregi("admincp", $_SERVER['REQUEST_URI']) && !eregi("searchjs.php", $_SERVER['REQUEST_URI']) && !eregi("locationjs.php", $_SERVER['REQUEST_URI'])) { register_shutdown_function("SysTime"); if (!verifysession() && ($SystemInfo->_systemstatus['User_Signup'] != "F" || $SystemInfo->_systemstatus['Seller_Signup'] != "F" || $SystemInfo->_systemstatus['Dealer_Signup'] != "F")) { eval("\$loginlink = \"" . $Template->gettemplate("register_link") . "\";"); } } 

Устаревший: функция eregi () устарела в C: \ xampp \ htdocs \ speedyautos \ admincp \ func.php в строке 447 (показаны строки 442-451)

 if (!$GLOBALS['noshutdownfunc']) { register_shutdown_function("CleanSessionTbl"); } } elseif (!eregi("install", $_SERVER['REQUEST_URI']) AND !eregi("install", $_SERVER['PHP_SELF'])) { echo "Please delete the install.php file"; exit; } 

Спасибо заранее!

Обычно вы должны использовать семейство регулярных выражений preg_ * . Тем не менее, большинство ваших вызовов ereg фактически просто не ereg регистр. Вместо

 !eregi("install", $_SERVER['PHP_SELF']) 

использование

 stripos($_SERVER['PHP_SELF'], 'install') === false 

, С preg_match это будет выглядеть так:

 !preg_match('/install/i', $_SERVER['PHP_SELF']) 

Измените eregi("install", $_SERVER['REQUEST_URI']) на preg_match("/install/i", $_SERVER['REQUEST_URI']) .

Ваши проблемы приходят немного поздно. Эти функции были устаревшими со времени появления PHP4. Это новые сообщения об ошибках. Если это все, о чем вы заботитесь, установите значение error_reporting() или error_level в php.ini

Вы можете преобразовать почти любую функцию ereg () в preg_match (), просто добавив некоторые / regex / delimiters. В ваших конкретных примерах вы можете, однако, просто использовать stripos() , переключив аргументы:

  stripos($_SERVER['REQUEST_URI'], "install") 

Если это все регулярное выражение, которое вы используете с eregi , используйте strpos :

 if (strpos ($ string_to_search_in, "install") === FALSE) // Обратите внимание, что три =
      echo ("not found :(");
 еще
      эхо ( "найден!");

Если вы используете более продвинутое регулярное выражение, вы можете сделать strtolower в строках, в которых вы выполняете поиск, перед вызовом regexp.

Похоже, код, который вы пытаетесь использовать, был разработан для более старой версии PHP.

Лучше всего связаться с автором и попросить исправить ошибку.

В противном случае, если вы чувствуете себя авантюрно и хотите погрузиться в замечательный мир регулярных выражений, вы можете пройти через каждый файл и преобразовать вызовы eregi вызовы preg_match с учетом различного синтаксиса, который PCRE сравнивал с регулярными выражениями POSIX , Похоже, что некоторые из них злоупотребляют регулярными выражениями и могут быть заменены более простыми строковыми совпадениями, такими как stripos .

Если это немного поработает, вы также можете изменить уровень error_reporting чтобы исключить E_DEPRECATED . Вы можете сделать это на уровне скрипта или на уровне конфигурации PHP. Я бы рекомендовал сделать это на уровне скрипта – есть вероятность, что есть вызов error_reporting где-то в процедурах init.