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

叔母から「私のブログおかしくなってる。ちょっと見れくれない?」とメールが入りました。

見ると・・・

あれれ・・・・。

ウィルスでもはいったのかしら?

でもプラグイン動かしてるしなあ。

「冷静に 冷静に・・・」

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

目次

解決/警告: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

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次