PHP のバージョン変更後、以下の現象が発生することがあります。
- 文字化けが発生する
- CSSを利用しているサイトの一部でレイアウトが崩れる
- WordPress 管理画面のレイアウトが崩れる
- WordPress でプラグインのインストールや削除時にエラーになる
PHPで日本語などのマルチバイト文字を扱う際、文字コードを適切に設定しないと文字化けなどのトラブルの原因になります。
PHP 5.6.0 以降は “UTF-8” がデフォルトになり、htmlentities() や html_entity_decode() そして htmlspecialchars() で encoding パラメータを省略した場合は、このデフォルト値を利用する仕様に変更になっています。
■ 参考サイト:PHP マニュアル > 付録 > php.ini ディレクティブ
https://secure.php.net/manual/ja/ini.core.php#ini.default-charset
これらの原因により、文字コードを適切に設定していないとPHPプログラムが正常に終了しないため、文字化けやレイアウト崩れが発生します。
対策といたしまして、下記内容を記述した .htaccess ファイルを該当のディレクトリに設置することで回避可能です。
PHP_value output_handler none
共用サーバーで CGI 版 PHP (バージョン 5.5系 / 5.6系 / 7.0系 / 7.1系 / 7.2系)をご利用の場合は、
下記内容を記述した .user.ini ファイルを該当のディレクトリに設置することで回避可能です。
⇒ PHP設定を .user.ini で変更する
default_charset=none