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
这是,如果你甚至从PHP 5 For Dummies本书的学习,您将了解的第一件事。 HTML不尊重新行或制表符或多个空格字符。新线路必须使用<br />
。
*从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。
我明白了。我直接从Lynda Intro PHP课程中获得了这一点。我在阅读了所有人的评论(想知道为什么不能用它在浏览器中显示)时会再次聆听课程,并意识到我错过了他的评论,“浏览器不显示回车和新的线字符“。谢谢,你的意见有帮助。 – Padawan
默认情况下,当一个PHP脚本运行,结果的内容类型设置为text/html
。当浏览器呈现HTML时,换行符通常不受尊重,它们被视为与任何其他空白字符一样。
如果你希望你的所有输出格式保持不变,而你不发送HTML,告诉你发送纯文本浏览器。把这个放在代码的开头:
header("Content-type: text/plain");
还有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");
增加了一些很好的格式...':)'希望它是好的。 –
HTML无法识别换行符,您需要使用'
'来打印换行符。您可以使用'nl2br()'函数来执行此操作,如'echo nl2br($ message);' – Qirel
您是否正在运行代码并在命令行或浏览器中查看输出? – dave
http://stackoverflow.com/a/588362/1220930 – Timurib