PHP 5.6 にバージョンアップ後、レイアウトが崩れたり文字化けが発生する。


PHP 5.6 にバージョンアップ後、以下の現象が発生することがあります。

  • CSSを利用しているサイトの一部でレイアウトが崩れる
  • 文字化けが発生する
  • WordPress 管理画面のレイアウトが崩れる
  • WordPress でプラグインのインストールや削除時にエラーになる

 

原因は、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

上記が原因により、UTF-8に対応していないサイトの一部PHPプログラムが正常に終了しないため、文字化けやレイアウト崩れが発生した可能性が考えられます。

対策といたしまして、.htaccess に以下の記述を追記することで回避可能です。

PHP_value default_charset none
PHP_value output_handler none
評価点数: 5 (1 件の投票)