2017-01-04 9 views
0
  • コードは二重引用符で囲まれていても動作しません。
  • I already read this post
  • 私は
  • のAtomを使用して(それはどんな違いがあれば)ローカルホスト上だよ、私は、Atomを再ダウンロード(場合の設定で起こって何かがあった)、それは
を助けにはなりませんでした

ここでは、コードです:PHPの改行文字( n)が動作していません

<?php 
$firstName = 'David'; 
$lastName = "Powers"; 
$title = '"The Hitchhiker\'s Guide to the Galaxy"'; 
$author = 'Douglas Adams'; 
$answer = 42; 
$newLines = "\r\n\r\n"; 

$fullName = "$firstName $lastName |"; 
$book = "$title by $author"; 

$message = "Name: $fullName $newLines"; 
$message .= "Book: $book \r\n\r\n"; 
$message .= "Answer: $answer"; 

echo $message; 
echo "Line 1\nLine 2"; 

出力はすべて1行ですが、私は新しい行が

を作業しているソースビューのとき
Name: David Powers | Book: "The Hitchhiker's Guide to the Galaxy" by Douglas Adams Answer: 42Line 1 Line 2 
+3

HTMLで改行が認識されないため、改行を印刷するには '
'を使用する必要があります。 'echo nl2br($ message);のように' nl2br() '関数を使うことができます。 – Qirel

+0

コードを実行し、コマンドラインやブラウザで出力を見ていますか? – dave

+0

http://stackoverflow.com/a/588362/1220930 – Timurib

答えて

4

PHP 5 For Dummies本からでも学習している場合、これは最初に学ぶことです。 HTMLは新しい行やタブ、または複数のスペース文字を尊重しません。新しい行には<br />を使用する必要があります。 PHP 5 For Dummies by Janet Valadeを発信元

preview
*。あなただけのテキストベースのレイアウトを選ぶされている場合は、あなただけのテキストファイルとして、それを尊重するために、ブラウザにヘッダを設定することができます

<?php 
$firstName = 'David'; 
$lastName = "Powers"; 
$title = '"The Hitchhiker\'s Guide to the Galaxy"'; 
$author = 'Douglas Adams'; 
$answer = 42; 
$newLines = "<br /><br />"; 

$fullName = "$firstName $lastName |"; 
$book = "$title by $author"; 

$message = "Name: $fullName $newLines"; 
$message .= "Book: $book <br /><br />"; 
$message .= "Answer: $answer"; 

echo $message; 
echo "Line 1<br />Line 2"; 

はにあなたのコードを変更し

。そのためには、次のものが必要です。

header("Content-type: text/plain"); 

これはHTMLなしでレンダリングされます。

+0

私は参照してください。私はIntro PHPのLyndaコースからこれをまっすぐに取り出しました。私は行って、皆さんのコメントを読んだら、コースにもう一度耳を傾けました(ブラウザで表示できないと、コースに参加することができないのだろうと思っています)。行の文字 "です。ありがとう、あなたの入力が役立ちます。 – Padawan

1

デフォルトでは、PHPスクリプトを実行すると、結果のコンテンツタイプはtext/htmlに設定されます。ブラウザがHTMLをレンダリングするとき、改行は通常は尊重されず、他の空白のように扱われます。

出力フォーマットをすべて同じにしてHTMLを送信しない場合は、プレーヤテキストを送信していることをブラウザに伝えます。これをコードの先頭に入れてください:

header("Content-type: text/plain"); 
+0

よろしくお願いいたします。ありがとうございました。 – Padawan

+0

質問:なぜ、ソースコード内では動作しないのであれば、教えてもらえませんか?私はちょうどこれを理解しようと2時間を無駄にしてから、Lyndaのビデオに戻って再建した。彼は基本的に同じことを言った、 "ブラウザは、新しい行の文字を表示しない"。 DOH! – Padawan

+0

"彼ら"が誰であるか分かりません。 – Barmar

1

また、Praveen Kumarはエコーに新しい行を印刷する方法についても言及しています。

しかし、あなたはまだあなたがprintf\t,\nのような他のエスケープシーケンスを使用することができますprint_fを使用し、その後エスケープシーケンスを使用する場合。

<?php 
$firstName = 'David'; 
$lastName = "Powers"; 
$title = '"The Hitchhiker\'s Guide to the Galaxy"'; 
$author = 'Douglas Adams'; 
$answer = 42; 
$newLines = "\r\n\r\n"; 

$fullName = "$firstName $lastName |"; 
$book = "$title by $author"; 

$message = "Name: $fullName $newLines"; 
$message .= "Book: $book \r\n\r\n"; 
$message .= "Answer: $answer"; 

printf ($message); 
printf ("Line 1\nLine 2"); 
+0

いくつかの良い書式を追加しました。 ':)'うまいですね。 –

関連する問題