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

徘徊边缘 提交于 2019-11-26 21:54:26

问题


Anyone knows how to solve the error below?

Deprecated: Function ereg() is deprecated in C:\wamp\www\includes\file.inc on line 895

It is happening after installing Drupal 6.13 on wamp server 2.0i with PHP 5.3.0


回答1:


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).




回答2:


Use

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

Instead of

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



回答3:


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




回答4:


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/




回答5:


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




回答6:


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.




回答7:


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




回答8:


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.



来源:https://stackoverflow.com/questions/1132912/how-to-solve-the-use-of-deprecated-function-ereg-of-php-5-3-0-in-drupal-6-13

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