問題 × 解決策

PHP7.0にアップグレードした時に遭遇したエラーと対処法

  • 2020年07月02日
  • PHP

問題

  1. エラー「PHP Fatal error: Uncaught Error: Call to undefined function ereg() ...」
  2. エラー「Deprecated: Function ereg_replace() is deprecated ...」

解決策

  1. ereg()をpreg_match()に切り替える。
  2. ereg_replace()をpreg_replace()に切り替えて、正規表現の中の最初と最後に「/」を追加する。

 

PHPのバージョンのアップグレード

セキュリティの関係上、レンタルサーバーでPHPのバージョンのアップグレードを推奨されます。
しかし、PHP7.0にアップグレードしたら、PHPのエラーが…。
そのため、今回はPHP7.0にアップグレードした時に遭遇したエラーと対処法をご紹介します。

エラー:「PHP Fatal error: Uncaught Error: Call to undefined function ereg() …」

「ereg()」に対して、エラーが出ました。
こちらは「ereg()」 → 「preg_match()」に切り替えることでエラーを解消しました。

修正前

ereg("/\/文字列/", $value);

修正後

preg_match("/\/文字列/", $value);

エラー:「Deprecated: Function ereg_replace() is deprecated …」

「ereg_replace()」に対して、エラーが出ました。
こちらは「ereg_replace()」 → 「preg_replace()」に切り替えて、正規表現の中の最初と最後に「/」を追加することでエラーを解消しました。

修正前

ereg_replace("正規表現", "書き換える文字列", $value);

修正後

preg_match("/正規表現/", "書き換える文字列", $value);

ここに注意!

  • preg_replace()に切り替えた後、さらにエラー「Unknown modifier」が出てしまいます。
    そのため、正規表現の最初と最後に「/」を追加することで解消されます。

参考ページ

以下のサイトが、より詳しく解説してくれています。

【Uncaught Error: Call to undefined function ereg( | JENGLOT】
https://ameblo.jp/mojeld/entry-12436392788.html

【ereg_replaceをpreg_replaceに書き換えた | 七ヶ国語できるITエンジニアを目指す】
http://harukomugi.sakura.ne.jp/blog/2014/07/17/ereg_replace%E3%82%92preg_replace%E3%81%AB/

コメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

two × three =

「問題 × 解決策」
月別アーカイブ一覧

「問題 × 解決策」
月別アーカイブ一覧