PHP 画面メッセージ改行

2019年7月9日

スポンサーリンク

PHP メッセージを改行する方法

Webアプリケーションにおいて、警告メッセージや画面上に文言を改行で出力する時にあります。その際に、前回、紹介したPHP_EOLを使って、上手く改行できない場合はあります。その時に、普通に【\r\n】を使っても上手くできませんので、少し工夫が必要です。

例1:【\r\n】を使ってもダメ

上記を実行した結果は、期待したメッセージを画面に表示せずに、javascriptエラー(SyntaxError: “" string literal contains an unescaped line break)が発生したという想定外のことでしょうか。
これを画面に入れたら、よそのjavascriptに影響を与えてボタンなどの機能は動作できず、あれ、先までチャンとできたのに、どうして突然上手くできなくなっただろうと、実際に時間が掛かって結構ハマったことがよくあるかと思います。その際に、ほかのjavascriptにはエラーが発生したかを確認すれば、良いかと思います。

上記のhtmlソースの中身↓
一見すぐに見つかる(途中改行のため)バグですが、実際に結構時間が掛かって、調査したことがあります。(特にjavascriptをいっぱい使う画面)

例2:【\r\n】の正しい使い方

【\r\n】はhtmlに出力した際に、改行コードとして解釈してしまうため、エスケープ【\】したら、問題が解決します。上記の結果、改行メッセージが上手くalertしました。
また【\\n】もできますが、OS環境によって、挙動が変わりますので、【\\r\\n】が上手くできない場合、【\\n】を試してみてください。

PHP_EOL】と【\r\n】の使い分けがお分かりになりますでしょうか。【PHP_EOL】はファイルやメール本文に文言を出力する場合は便利です。その一方で、【\r\n】や【\n】はhtmlファイルやjavascriptに文言を出力するのに強いです。

スポンサーリンク