【PHP】ヒアドキュメントでなぜか文字化けする

  • 投稿 : 2020-11-06

参考

Nowdoc はヒアドキュメントと似ていますが、 ヒアドキュメントがダブルクォートで囲んだ文字列として扱われるのに対して、 Nowdoc はシングルクォートで囲んだ文字列として扱われます。 Nowdoc の使用方法はヒアドキュメントとほぼ同じですが、 その中身について パース処理を行いません。 PHP のコードや大量のテキストを埋め込む際に、 エスケープが不要になるので便利です。この機能は、SGML の (ブロック内のテキストをパースしないことを宣言する) と同じようなものです。
PHP: 文字列 - Manual

PHP5.3以降から上記のような機能があるそうです。

変数など展開させない

//ヒアドキュメント
$js =<<< EOM
<省略>
EOM;

//Nowdoc
$js =<<< 'EOM'
<省略>
EOM;

後半のような書き方にすると、記述したまま出力されます。ヒアドキュメントで変数と解釈されて、意図しない展開をされて文字化けするなどの場合は、これで解決できます。

スポンサーリンク
タグ#PHP#code