PHP新行字符(\ n)不工作

时间:2017-01-04 23:21:52

标签: php

  • 代码是双引号但仍无法正常工作。
  • I already read this post
  • 我正在使用Atom而且我在localhost上(如果这有任何区别)
  • 我重新下载了Atom(如果设置有问题)并且没有帮助

以下是代码:

Name = "CurrentVersion" and 
Value = "45.6.0 ESR (x86 en-US)"

输出是一行,但当我查看源时,新行正在运行

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

3 个答案:

答案 0 :(得分:5)

如果您从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的情况下呈现。

答案 1 :(得分:1)

默认情况下,运行PHP脚本时,结果的内容类型设置为text/html。当浏览器呈现HTML时,通常不会遵循换行符,它们会被视为任何其他空格。

如果您希望所有输出格式保持不变,并且您没有发送HTML,请告诉浏览器您要发送纯文本。把它放在代码的开头:

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

答案 2 :(得分:1)

Praveen Kumar也提到如何在echo中打印新行。

但如果您仍想使用转义序列,请使用 print_f 您可以在{{1}中使用其他转义序列,例如 \t,\n }。

printf