How to solve the use of deprecated function ereg() of PHP 5.3.0 in Drupal 6.13

岁酱吖の 提交于 2019-11-28 01:16:54
Alan Storm

Drop your error reporting level below E_DEPRECATED.

PHP 5.3 introduced two new error reporting levels, E_DEPRECATED and E_USER_DEPRECATED and - for the first time in PHP's history - they've started to walk away from older parts of their API. The ereg_* function will still work, but this warning is intended to let you know that "hey, these function will be going away soon, probably in the next major revision).

Parmendra Singh

Use

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

Instead of

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

Just add @ in front of the function. e.g.

@ereg()

more issue relating upgraded your web servers which running PHP 5.3.0, pls refer

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

You can edit you common.inc file to quietly disregard the deprecated error flags. See my post: http://funkinetics.org/klink/function-ereg-is-deprecated-error-in-drupal-6x-with-php-53/

One solution is to upgrade the offending sourcecode :-) It's explained here: http://drupal.org/node/514334#comment-2852940

This is not a Drupal issue.In the Drupal site it is noted that it does not yet support PHP 5.3 and there have been new error flags added to PHP.

Solution1 : You can degarde the PHP version.You can revert back to PHP 5.2.x. As I am unsure of other conflicts with Drupal and PHP 5.3.

Solution2 : However, if you prefer to keep PHP 5.3, you can always suppress the deprecated function errors. In Drupal’s includes/common.inc, Find the line :

if ($errno & (E_ALL ^ E_NOTICE)) { And replace it with:

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

This will now always suppress the Deprecated error messages.

Looks like the problem is with PHP 5.3.0. You could try downgrading to 5.2.9 as suggested by this drupal link: http://drupal.org/node/514334

Because I don't have time to update legacy code, I addeded following line to php code to suppress warnings.

error_reporting(E_ALL ^ E_DEPRECATED);

this line suppress only deprecated warnings. other errors are shown as usual.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!