5

ログ ファイルと Drupal ステータス ページに次のような PHP の非推奨エラーがあふれています。

: Function ereg() is deprecated in mysite/includes/file.inc on line 893.

php.ini で E_DEPRECATED エラーをオフにできるはずですが、次のように設定しても効果がありません。

error_reporting = E_ALL & ~E_DEPRECATED

phpInfo() は error_reporting マスター値とローカル値の両方を 22527 と報告します。

私はやった

grep -R error_reporting 

ハードコーディングされたエラーレベルと運がないことを期待して、私のドキュメントルートで:

./includes/common.inc:  // If the @ error suppression operator was used, error_reporting will have
./includes/common.inc:  if (error_reporting() == 0) {
./modules/system/system.module:    'page arguments' => array('system_error_reporting_settings'),
./modules/system/system.admin.inc:function system_error_reporting_settings() {
./modules/system/system.install:      $err = error_reporting(0);
./modules/system/system.install:      error_reporting($err);

おそらくsystem.installの最初の行を除いて、私が見ることができるものは何もありませんが、私が正しければ、すべてのエラーがオフになるはずです。

私は .htaccess で error_reporting を設定していませんが、それを行っても効果はありません。

common.inc のハード コーディング エラー レベルを含まない解決策があることを願っています (これは機能しますが、試してみましたが、明らかに望ましくありません)。

非推奨のエラーが PHP 5.3 へのアップグレードの結果であることはわかっていますが、PHP のダウングレードはオプションではありません (5.3 でテストされた同じサーバー上で新しいサイトが現在稼働中であり、これらのエラーが発生したサイトの稼働には 2 か月あります) )。また、5.3 でうまく動作する Drupal バージョンにアップグレードすることもできません。残念ながら、前の所有者が変更を文書化せずにコア モジュールを変更したためです。

バージョンのもの:

PHP 5.3.2-1、Ubuntu 10.04、Drupal 6.13 (一方のサイト)、6.5 (!!1!) (もう一方のサイト)、Apache 2.2

4

3 に答える 3

3

index.php を編集してみましたか


error_reporting(E_ALL & ~E_DEPRECATED & ~E_USER_DEPRECATED);

require_once './includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
于 2010-11-05T14:07:20.403 に答える
2

私は自分のphp.iniファイルでこれを使用しており、これらの非推奨のエラーを非表示にすることができました。それがあなたを助けることを願っています! =)

error_reporting  =  E_ALL & ~E_DEPRECATED & -E_WARNING
于 2012-03-11T08:51:36.317 に答える
0

エラー報告を無効にする方法はわかりませんが、すべてのereg関数をpreg_match..!に置き換えることができます。

于 2010-11-05T09:02:17.207 に答える