2010/12/5の記事【エスケープシーケンス - Lv1プログラマの誰得メモ】のサンプルを動作させてみた。
ソースは以下
<?php print('1行目の文章'); print("\n"); print('2行目の文章'); ?>
ブラウザでは
1行目の文章 2行目の文章
何を疑うまでもなく、こう表示されると思っていた。
(※「んなわけないじゃん」と思った方はこの先読まなくてもいいですよ!)
が
・・・あれ?改行されてない?
「\r\n」だったかな?(^ω^;
修正修正。。。
あれれ?(・ω・;;
\" や \’はちゃんと表示される
なぜ改行だけ??
文字コードはUTF-8
エディタの文字コードも同じくUTF-8
じゃあ、エディタが悪いのか?
→エディタ変えても変化無し
ブラウザが悪いのか?
→ブラウザ変えても変化無し
友人からの助言
「"PHP_EOL"使ってみたら?」
ほほう!何だ、それは!!
端的に言うと、それぞれのOSに合わせた改行コードを入れてくれる定数らしい
OS | 改行コード | 改行文字 |
---|---|---|
Windows | CR+LF | \r\n |
MacOS | CR | \r |
UNIX系 | LF | \n |
すげぇ!こんなものがあったのか!
コレで解決するね!
使ってみよう!!
<?php print('1行目の文章'); print(PHP_EOL); print('2行目の文章'); ?>
これでよし!
ブラウザで表示!!
・・・え?
使い方はあってるはずだ
なのになぜ表示されない
orz
友人「ちなみにさ、PHP_EOLの代わりに<br>・・・」
私「あ!」
分かっちゃった!
私、分かっちゃったよ!
友人が言い切る前に!
そりゃブラウザで見て改行されてるわけないよね
エディタ
<html xmlns="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head> <body> <?php print('1行目の文章'); print("\n"); print('2行目の文章'); ?> </body> </html>
ソースではしっかり改行されとるがな(^q^)
そりゃ、phpでhtml生成してんだもん
<br>付けなきゃ改行されてブラウザ表示されないよね
なんか、もう、こんな単純なことで2,3日も悩んでたなんて。。。
文字コードのことだとか、PHP_EOLのことだとか、色々勉強になったから良かった、かな?
【2018/06/16追記】
8年も前の記事なのに、いまだにたくさん見ていただけているようで大変嬉しいです!(見られているページ1位なのです・・・)
PHPの勉強は現在ストップしていますが、また再開したいと思っていますのでコメント残していただけると励みになります。
当時は「しょーもない勘違いだなぁ(笑」と思いながら記事にしていたのですが、少しでも皆さんのお役に立てているなら幸いです^^