PHP(ピー・エイチ・ピー)

【PHP5.3】廃止予定関数を使用するとDeprecatedエラーが出ます

最近、ディープのサーバーをさくらインターネットの専用サーバーへ乗り換えたのですが、

ちょっとした問題が発生しました。

 

新サーバーのPHPのバージョンは5.3なんですが、

旧サーバーで作成したシステムを乗せると至る所でエラーが!!!!!!!!!!!

 

PEARを使用しているプログラムで、

Deprecated: Assigning the return value of new by reference is deprecated

とか

Deprecated: Function eregi() is deprecated

のような、

今まであまり目にしたことのないエラーメッセージです。

 

どうも、

PHP5.3からerror_reportingに「E_DEPRECATED」というエラーレベルが追加されていました。

 

これは、

今後、ereg()関数やsplit()関数などのサポート廃止予定の関数を使用した場合には、警告を出しますよ!

みたいなことらしいです。

 

このエラーへの一番簡単な対処方法は、

error_reportingを「E_ALL & ~E_DEPRECATED」にして、E_DEPRECATEDのエラーは出さないようにする!!

です。

 

でも、

いずれサポート廃止する関数をこんな一時的な処置で回避していると後々エライ目に合いそうなんで、

エラーの箇所を洗い出して一つ一つ修正することにしました。

ereg()preg_match()に、

split()explode()に、

変更!!

 

これで大丈夫な筈なんですが、

なんせ至る所でPEARを使用しているので途中で挫折しました。

 

仕方ないので、やはりerror_reportingの設定を変更して対応することにしました。

といっても、大元のphp.iniを書き換えるのは嫌なので、

エラーが出ているページのスクリプトの頭の方に、

error_reporting(E_ALL & ~E_DEPRECATED);

という1行を加えてやることで回避しました。

 

結局、エラーレベルを変更するんかい、と言われそうですが。。。。

 

そこは大人の対応で気付かない振りをしてください。

この記事を書いている人
株式会社ディープ
名前足立拓也

メールアドレスadachi@deep-deep.jp

関連記事

最近の記事

  1. レンタルサーバ:おすすめの共用サーバ
  2. ホームページ(homepage)
  3. システムアップデート
  4. エックスサーバー(XSERVER)
  5. エックスサーバー(XSERVER)
  6. エックスサーバー(XSERVER)
  7. WEBサイト構築
  8. スパム(SPAM)対策
  9. サイト公開
  10. ネームサーバーの登録

Twitter

ダッチ(足立拓也)
@gatsu0000

アーカイブ

PAGE TOP