Как решить, использовать устаревшую функцию ereg () PHP 5.3.0 в Drupal 6.13 - PullRequest
6 голосов
/ 15 июля 2009

Кто-нибудь знает, как решить ошибку ниже?

Не рекомендуется: Функция ereg () устарела в C: \ wamp \ www \ includes \ file.inc в строке 895

Это происходит после установки Drupal 6.13 на wamp server 2.0i с PHP 5.3.0

Ответы [ 8 ]

34 голосов
/ 23 августа 2016

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

preg_match('/\.([^\.]*$)/', $this->file_src_name, $extension);

Вместо

ereg('\.([^\.]*$)', $this->file_src_name, $extension);
11 голосов
/ 15 июля 2009

Падение уровня сообщений об ошибках ниже E_DEPRECATED .

PHP 5.3 представил два новых уровня сообщений об ошибках, E_DEPRECATED и E_USER_DEPRECATED, и - впервые в истории PHP - они начали отходить от более старых частей своего API. Функция ereg_ * по-прежнему будет работать, но это предупреждение предназначено для того, чтобы вы знали, что «эй, эти функции скоро уйдут, вероятно, в следующей основной ревизии).

1 голос
/ 06 апреля 2012

Просто добавьте @ перед функцией. например,

@ EREG ()

больше проблем, связанных с обновлением ваших веб-серверов, на которых работает PHP 5.3.0, пожалуйста, обратитесь

http://www.rain -forest-forum.com / Dotproject-нетто-установка-вопросы-t263.html

0 голосов
/ 05 июня 2013

Это не проблема Drupal. На сайте Drupal отмечается, что он еще не поддерживает PHP 5.3, и в PHP были добавлены новые флаги ошибок.

Решение 1: Вы можете игнорировать версию PHP. Вы можете вернуться к PHP 5.2.x. Как я не уверен в других конфликтах с Drupal и PHP 5.3.

Решение2: Однако, если вы предпочитаете сохранять PHP 5.3, вы всегда можете подавить устаревшие ошибки функций. В Drupal включает / common.inc, Найдите строку:

if ($ errno & (E_ALL ^ ​​E_NOTICE)) { И заменить его на:

if ($ errno & (E_ALL & ~ E_NOTICE & ~ E_DEPRECATED)) {

Теперь это будет всегда подавлять устаревшие сообщения об ошибках.

0 голосов
/ 12 марта 2012

Поскольку у меня нет времени на обновление устаревшего кода, я добавил следующую строку в код php для подавления предупреждений.

error_reporting(E_ALL ^ E_DEPRECATED);

эта строка подавляет только устаревшие предупреждения. другие ошибки отображаются как обычно.

0 голосов
/ 27 ноября 2010

Одним из решений является обновление нарушающего исходного кода :-) Это объясняется здесь: http://drupal.org/node/514334#comment-2852940

0 голосов
/ 20 июля 2009

Вы можете отредактировать свой файл common.inc, чтобы спокойно игнорировать устаревшие флаги ошибок. Смотрите мой пост: http://funkinetics.org/klink/function-ereg-is-deprecated-error-in-drupal-6x-with-php-53/

0 голосов
/ 15 июля 2009

Похоже, проблема в PHP 5.3.0. Вы можете попробовать понизить до 5.2.9, как предлагает эта друпальная ссылка: http://drupal.org/node/514334

...