Как решить использование устаревшей функции ereg () PHP 5.3.0 в Drupal 6.13

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

Устаревший: функция ereg () устарела в C: \ wamp \ www \ includes \ file.inc в строке 895

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

Снимите свой отчет об ошибках ниже E_DEPRECATED .

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

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

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

Вместо

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

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

@ereg ()

больше вопросов, связанных с обновлением веб-серверов, работающих под управлением PHP 5.3.0, PLS

http://www.rain-forest-forum.com/dotproject-net-installation-issues-t263.html

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

Одно из решений – обновить исходный код нарушения 🙂 Здесь объясняется: http://drupal.org/node/514334#comment-2852940

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

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

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

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

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

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

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

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

 error_reporting(E_ALL ^ E_DEPRECATED); 

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