11

以下のエラーを解決する方法を知っている人はいますか?

非推奨: 関数 ereg() は C:\wamp\www\includes\file.inc の 895 行目で非推奨です

Drupal 6.13 を PHP 5.3.0 の wamp サーバー 2.0i にインストールした後に発生しています。

4

8 に答える 8

47

使用する

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

それ以外の

ereg('\.([^\.]*$)', $this->file_src_name, $extension);
于 2016-08-23T06:19:40.120 に答える
11

エラー報告レベルを E_DEPRECATED より下に下げます。

PHP 5.3 では、E_DEPRECATED と E_USER_DEPRECATED という 2 つの新しいエラー レポート レベルが導入され、PHP の歴史で初めて、API の古い部分から離れ始めました。ereg_* 関数は引き続き機能しますが、この警告は、「これらの関数は、おそらく次のメジャー リビジョンでまもなく廃止される予定です」ということを知らせることを目的としています。

于 2009-07-15T18:05:21.343 に答える
2

関数の前に@を追加するだけです。例えば

@ereg()

PHP 5.3.0 を実行している Web サーバーのアップグレードに関するその他の問題については、こちらを参照してください。

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

于 2012-04-06T01:16:38.070 に答える
1

これは 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)) {

これにより、非推奨のエラー メッセージが常に抑制されるようになりました。

于 2013-06-05T09:53:39.890 に答える
0

common.inc ファイルを編集して、非推奨のエラー フラグを静かに無視することができます。私の投稿を参照してください: http://funkinetics.org/klink/function-ereg-is-deprecated-error-in-drupal-6x-with-php-53/

于 2009-07-20T19:09:16.413 に答える
0

1 つの解決策は、問題のあるソースコードをアップグレードすることです:-) ここで説明されています: http://drupal.org/node/514334#comment-2852940

于 2010-11-27T18:02:44.067 に答える
-2

レガシー コードを更新する時間がないため、警告を抑制するために次の行を php コードに追加しました。

error_reporting(E_ALL ^ E_DEPRECATED);

この行は非推奨の警告のみを抑制します。他のエラーは通常どおり表示されます。

于 2012-03-12T19:11:12.890 に答える
-2

問題は PHP 5.3.0 にあるようです。この drupal リンクで提案されているように、5.2.9 へのダウングレードを試すことができます: http://drupal.org/node/514334

于 2009-07-15T17:59:25.097 に答える