以下のエラーを解決する方法を知っている人はいますか?
非推奨: 関数 ereg() は C:\wamp\www\includes\file.inc の 895 行目で非推奨です
Drupal 6.13 を PHP 5.3.0 の wamp サーバー 2.0i にインストールした後に発生しています。
使用する
preg_match('/\.([^\.]*$)/', $this->file_src_name, $extension);
それ以外の
ereg('\.([^\.]*$)', $this->file_src_name, $extension);
エラー報告レベルを E_DEPRECATED より下に下げます。
PHP 5.3 では、E_DEPRECATED と E_USER_DEPRECATED という 2 つの新しいエラー レポート レベルが導入され、PHP の歴史で初めて、API の古い部分から離れ始めました。ereg_* 関数は引き続き機能しますが、この警告は、「これらの関数は、おそらく次のメジャー リビジョンでまもなく廃止される予定です」ということを知らせることを目的としています。
関数の前に@を追加するだけです。例えば
@ereg()
PHP 5.3.0 を実行している Web サーバーのアップグレードに関するその他の問題については、こちらを参照してください。
http://www.rain-forest-forum.com/dotproject-net-installation-issues-t263.html
これは Drupal の問題ではありません。Drupal サイトでは、まだ PHP 5.3 をサポートしておらず、PHP に新しいエラー フラグが追加されていることが記載されています。
解決策 1 : PHP のバージョンを下げることができます。PHP 5.2.x に戻すことができます。Drupal および PHP 5.3 とのその他の競合については不明です。
解決策 2 : ただし、PHP 5.3 を維持したい場合は、非推奨の関数エラーをいつでも抑制することができます。Drupal の includes/common.inc で、次の行を見つけます。
if ($errno & (E_ALL ^ E_NOTICE)) { そして次のように置き換えます:
if ($errno & (E_ALL & ~E_NOTICE & ~E_DEPRECATED)) {
これにより、非推奨のエラー メッセージが常に抑制されるようになりました。
common.inc ファイルを編集して、非推奨のエラー フラグを静かに無視することができます。私の投稿を参照してください: http://funkinetics.org/klink/function-ereg-is-deprecated-error-in-drupal-6x-with-php-53/
1 つの解決策は、問題のあるソースコードをアップグレードすることです:-) ここで説明されています: http://drupal.org/node/514334#comment-2852940
レガシー コードを更新する時間がないため、警告を抑制するために次の行を php コードに追加しました。
error_reporting(E_ALL ^ E_DEPRECATED);
この行は非推奨の警告のみを抑制します。他のエラーは通常どおり表示されます。
問題は PHP 5.3.0 にあるようです。この drupal リンクで提案されているように、5.2.9 へのダウングレードを試すことができます: http://drupal.org/node/514334