我不确定这是 Ubuntu、Apache 还是 PHP 的问题。
以下基本脚本不会在我的 Firefox 浏览器中呈现新行。
echo "this is not \n creating a new line";
echo "this is not \r\n creating a new line";
echo "this is not creating a new line";
我目前正在学习 PHP,不知道从哪里开始解决这个问题。我从谷歌搜索中了解到,上述 3 个应该可以解决。
这有效
echo "this does <br> create a new line";
我的设置:
Ubuntu 18.04.2
Apache/ 2.4.29 (ubuntu)
PHP 7.3.7-2+ubuntu18.04.1
Fireforx Developer (Quantum) 68.0.1 (64bit)
感谢@cmak.fr 和@Mathieu 的回答。现在更有意义了。在阅读您的回复后,我也找到了此链接https://www.webmasterworld.com/php/3127164.htm。
进一步探究后,我发现<pre>
标签与 结合使用时也能发挥作用\n
。这是为什么呢?
<html>
<body>
<h1>Some h1</h1>
<p>Some text</p>
<pre>
<?php
echo "this is not \n creating a new line";?>
</pre>
</body>
</html>
答案1
html 源代码中的换行符在浏览器中不会显示为换行符。
查看生成的 html 页面的源代码,你会发现你的换行符。
换行符的 html 代码<br>
简而言之
<?php echo "\r\n"; ?> // Writes a new line in the output stream
<?php echo "<br>"; ?> // Writes the newline html code
另一个例子:
<php
echo "<html><body>A<br>\r\nB<br>C\r\n</body></html>"
?>
将输出原始文本:
<html><body>A<br>
B<br>C
</body></html>
浏览器将显示此内容
A
B
C
答案2
据我所知,换行是用<br>
或<br />
标签进行的。
您可以转换\n
为<br />
nl2br
功能:
<?php
$line = "First line\nSecond line."
echo nl2br($line);
?>