解決/警告:preg_replace():/ e修飾子はサポートされなくなりました。

叔母から「秘亭ちゃん 私のブログおかしくなってる」とメールが入りました。

見ると・・・

 

 

あれれ・・・・。

ウィルスでもはいったのかしら?
でもプラグイン動かしてるしなあ。

「冷静に 冷静に・・・」
(火曜ドラマ「監獄のお姫様」の主人公;小泉今日子扮する馬場カヨが、呟くおまじない)

 

Warning: preg_replace(): The /e modifier is no longer supported

ブログに並んでいたのは、コレ ↓ 

 

「Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead」

約すると

警告:preg_replace():/ e修飾子はサポートされなくなりました。代わりにpreg_replace_callbackを使用してください。

 

サーバーのアカウントが入っているので、もしやと別のブログを見ると

 

おまけに「改行」を助けるプラグイン br-Br-br も。

 

原因はPHP7とプラグインの相性

以前、ブログの動作がオカシクなった時に「PHPのバージョン」が古かったので推奨版に変更し直ったことがありましたので
「推奨版」にすべきと変更したのが原因でした。

下記のページでヒントがありました。

https://qiita.com/DQNEO/items/02a6c0234ed09dd4a5f3

PHP5.5時代にpreg_replaceに@書いてお茶を濁した人は、PHP7で地雷を踏む。

 

解決 その1

PHPのバージョン選択を変更

■ 私は、さくらサーバーを使っているので
コントロールパネル →「アプリケーションの設定」 → 「PHPのバージョン選択」

■ PHP7.1 [標準のPHP] (CGI版) をPHP5.6 に変更。

これで、元に戻りました。

解決 その2

PHP7.1 [標準のPHP] (CGI版)は、推奨なので
何か他の原因があるのだと思って・・・試しにプラグイン「br-Br-br」を停止しました。

PHP7.1 [標準のPHP] (CGI版)に更新しても、警告が出ません。

 

 

解決して良かったです。(*^^)v

Pocket

当ブログの記事に共感していただけたら、嬉しいです。