换行不适用于PHP?

时间:2010-11-22 02:28:54

标签: php newline

这是我的完整网页,其中的PHP代码直接来自here。然而,页面上的所有文字都在一行上呈现?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
</head>
<body>

<?php

echo "This spans
multiple lines. The newlines will be
output as well";

echo "This spans\nmultiple lines. The newlines will be\noutput as well.";

?>

</body>
</html>

5 个答案:

答案 0 :(得分:3)

您的源代码中包含换行符。但是,浏览器不会将换行符呈现为页面上的换行符,因此您需要使用换行符标记(<br />)。

答案 1 :(得分:2)

HTML不支持换行符,因此您必须使用<br>

您可以使用nl2br将您字符串中的所有\n转换为<br>,这将生成您想要的输出。

答案 2 :(得分:1)

HTML会将连续的空格(在大多数情况下)合并为单个空格字符。您需要输出段落(<p>...</p>)或带边框或填充的其他标记,或输出显式换行符(<br>)。

答案 3 :(得分:1)

确实打印了换行符,但HTML并不关心空格(除非您明确告诉它,请查看pre元素和white-space: pre)。

在查看HTML时,浏览器基本上会将所有\s转换为一个空格。

答案 4 :(得分:1)

哦,新的线路在那里,他们正在工作。深入了解HTML (即右键单击浏览器并选择查看页面源),而不是显示结果在浏览器中。你会看到那里的新线。

问题在于HTML本身并不关心如何格式化空白区域。对于HTML所有空格,无论是制表符,新行还是整个空格都被翻译为单个空格。

要让HTML显示换行符,您必须使用<pre><p><br/>等HTML标记。

我发现PHP程序更容易创建我自己的echoLine函数,该函数同时添加\n<br/>。这样,我在网页源和HTML显示中都看到了它。