PHP换行符(\ n)的工作不

问题描述:

  • 的代码是在双引号,但仍不能工作。
  • 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"; 

输出是一点整行,但是当我查看源代码的新的生产线正在

Name: David Powers | Book: "The Hitchhiker's Guide to the Galaxy" by Douglas Adams Answer: 42Line 1 Line 2 
+3

HTML无法识别换行符,您需要使用'
'来打印换行符。您可以使用'nl2br()'函数来执行此操作,如'echo nl2br($ message);' – Qirel

+0

您是否正在运行代码并在命令行或浏览器中查看输出? – dave

+0

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

这是,如果你甚至从PHP 5 For Dummies本书的学习,您将了解的第一件事。 HTML不尊重新行或制表符或多个空格字符。新线路必须使用<br />

preview
*从PHP 5 For Dummies by Janet Valade来源。

你的代码更改为:

<?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

我明白了。我直接从Lynda Intro PHP课程中获得了这一点。我在阅读了所有人的评论(想知道为什么不能用它在浏览器中显示)时会再次聆听课程,并意识到我错过了他的评论,“浏览器不显示回车和新的线字符“。谢谢,你的意见有帮助。 – Padawan

默认情况下,当一个PHP脚本运行,结果的内容类型设置为text/html。当浏览器呈现HTML时,换行符通常不受尊重,它们被视为与任何其他空白字符一样。

如果你希望你的所有输出格式保持不变,而你不发送HTML,告诉你发送纯文本浏览器。把这个放在代码的开头:

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

好的,很高兴知道。谢谢。 – Padawan

+0

问题:为什么他们甚至懒得教它(如果它在示例中使用浏览器输出),如果它不在任何地方,但在源代码中工作?我只是浪费了2个小时试图弄清楚这一点,然后回到Lynda的视频并重新安置;他基本上也是这样说的,“浏览器不显示换行符”。 DOH! – Padawan

+0

我不知道他们是谁。 – Barmar

还有Praveen Kumar提到了如何在echo中打印新行。

但是,如果你仍然想使用转义序列,然后使用print_f您可以printf使用其他转义序列像\t,\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"; 

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

增加了一些很好的格式...':)'希望它是好的。 –