такая же ошибка поддерживалась в этих файлах 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.