因为是在Drupal中遇到的问题,所以就在Drupal中解决。原因很简单,就是Drupal 6.x不支持PHP 5.3,Drupal 7没有这个问题,解决办法也很多。最简单的莫过于降级到PHP 5.2.x,如果由于一些特别的原因必须使用PHP 5.3+的话,可以尝试下列办法。
打开Drupal安装目录下的includes/common.inc文件,找到590行(如果没有修改过的话),显示的应该是
 
if ($errno & (E_ALL ^ E_NOTICE)) {
将这一行替换成
if ($errno & (E_ALL &  ~E_NOTICE & ~E_DEPRECATED)) {
这一句将禁止所有Deprecated错误信息。如果你安装了Developer Tools模块的话,那么还需要修改devel/devel.module的460行,方法相同。

如果这个办法不好用的话,可以尝试修改php.ini。
打开php.ini,找到
error_reporting = E_ALL
改成
error_reporting = E_ALL & ~E_DEPRECATED
道理是一样的。

 
如果还不行,或者因为各种原因改不了以上两处的话,还有办法。
打开drupal\includes\file.inc文件,找到895行,如下。
elseif ($depth >= $min_depth && ereg($mask, $file)) {
注意,如果895行不是这句的话,就在附近找找,或者直接搜索这句,找到以后把这句改为
elseif ($depth >= $min_depth && mb_ereg($mask, $file)) {
这样怎么着应该都行了。