- ベストアンサー
PHPの改行についての疑問 - print("\n")の意味と使い方
- 初心者のためのPHP改行に関する解説として、print("\n")の意味と使い方について説明します。
- PHPで改行を表示させる方法について、print("\n")と<br />タグの使い方の違いについて解説します。
- print("\n")だけでは改行表示がされない理由と、改行を表す他の方法について詳しく説明します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
print("\n");は、テキストエディターでHTMLを書いている時にEnterを押すのと同じ意味です。 HTML内にいくらEnterで改行を入れてもブラウザ上では改行として表示されないのと同じです。 print("\n");の本来の意味というか使い方は「改行文字を出力する」です。 例えば <pre> <?php print('1行目の分'); print("\n"); print('2行目の分'); ?> </pre> とすれば、改行文字が生きてきます。 また、HTMLを出力するのでは無く、テキストデータやCSVデータをPHPで書き出す時は改行文字を出力する必要があるので使用します。
その他の回答 (2)
- dscripty
- ベストアンサー率51% (166/325)
<!--[質問] より引用 ブラウザで確認しても 改行がされていませんでした。 --> そのページをブラウザで開いたときに、 ページを右クリックして、 表示されるメニューから [ソースの表示] を選択してみて? ちゃんと改行が出力されてるでしょう? <!--[質問] より引用 であればそもそもPHPの改行を表すprint("\n");は何のためにあるのでしょうか? (省略) print("\n");は単体で使う事はあるのでしょうか? --> [No.1] さんも指摘しているけれど HTML のページとして出力するなら PRE 要素とか TEXTAREA 要素とかで必要になってくるけれど、でも HTML のページとして出力するだけが PHP の仕事じゃないよ? 他の用途(CSV や単なるテキストや他にもいろいろ)ならもちろん print("\n") は役にたつよね。 <!--[質問] より引用 print("\n");だけでは改行表示がされないのは、どういう風に考えればいいのでしょうか? --> [No.2] さんが回答しているけれど、HTML ページとして出力された改行をウェブブラウザで読み込んだのなら、ウェブブラウザは HTML の仕様↓にしたがって表示しているだけだよ? http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/struct/text.html#h-9.1 『特にユーザエージェントは、語間スペースの出力処理に際しては、連続する空白類の入力があった場合は1つにまとめてしまう必要がある。 』
お礼
すごく丁寧にご説明いただき理解できました。 大変助かりました。 ありがとうございます。
- yambejp
- ベストアンサー率51% (3827/7415)
はっきりいえば今回の件、PHPは関係ないですね HTMLは構造を定義する言語なのでそもそも「改行」という 構造に無関係なものを表示する意味がありません。 そもそもbrだって使わない方がよく、文書は段落pで管理するのが しかるべき対応です。 HTMLとはなにかという基本を学習すると少しずつ分かっていけるかもしれません
お礼
アドバイス大変参考になります。 ありがとうございました。
お礼
なるほど! HTML以外で使用する際に意味がでるのですね。 ありがとうございます。