問題
- エラー「PHP Fatal error: Uncaught Error: Call to undefined function ereg() ...」
- エラー「Deprecated: Function ereg_replace() is deprecated ...」
解決策
- ereg()をpreg_match()に切り替える。
- 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/
コメント