本文是对 PHP 换行符的使用讲解

正文

今天在学习 PHP 的过程中发现 \n 并没有像书上说的正常换行。
举个例子,如下 PHP 代码:

  1. echo "hello \n world";

在浏览器中是这样子的:
没有换行
抱着疑问 Google 了一下,马上得到了答案:
首先,PHP 成功将换行符解析出来了,解析的结果就像下面这样:

  1. hello
  2. world

但是,在网页中,上面解析的结果被包到了 HTMLbody 标签中,我们都知道,在 HTML 中的 空格、换行符和制表符,都会被视为空白字符。所以在浏览器中并没有正常的换行。
HTML 源码解析为何不换行

解决方法

方法一:使用 HTML 中的换行符

因为要在浏览器中展示,那我们使用 HTML 中的换行符不就行了吗?
将上面的 PHP 代码改成如下:

  1. echo "hello <br /> world";

结果如下,成功换行:
成功换行

方法二:查看 PHP 解析的源代码

我前面说了,他解析的结果是没有问题的,那我们查看它解析后的源代码不就行了。而且浏览器中查看网站源代码也非常方便。
在源代码中展示换行

额外说明

还有,就是单引号与双引号的问题。在 PHP 中双引号支持多种字符串转义,也就是说,如果上面你使用单引号,PHP 是不会解析成换行符的。
使用单引号的结果:
单引号并不会换行
另外,如果你觉得写 <br /> 麻烦,可以使用PHP内置函数 nl2br()\n 转换成 <br />

  1. echo "hello <br /> world";
  2. echo nl2br("hello \n world"); // 效果与上面一样

参考资料

PHP中的换行详解
https://www.zhangshengrong.com/p/O3aAOzjX4E/
https://www.zhangshengrong.com/p/q0Xp3LkNKZ/