我正在尝试从'学习php MySQL& Javascript'来自Robin Nixon。
在其中,他解释了下面的代码应该如何按字面输出(带有行结尾和空格)。但它在一条线上输出所有东西。那是为什么?
$author = "Alfred E Newman";
echo <<<_END
This is a headline
This is the first line
This is the second
- Written by $author.
_END;
答案 0 :(得分:5)
很可能是输出“自有行”上的所有内容,但是,如果这是在HTML页面上,则可能无法保留换行符。将所有内容换行<pre>
以保留所有空格。
示例:
echo <<<_END
<pre>
This is a headline
This is the first line
This is the second
- Written by $author.
</pre>
_END;
要进行适当的标记,您应该将元素包装在各自的容器中,例如:
echo <<<_END
<h2>This is a headline</h2>
<p>This is the first line</p>
<p>This is the second</p>
<p>- Written by $author.</p>
_END;
上面的示例会将您的内容分解为多个部分。
答案 1 :(得分:2)
您很可能将其输出到HTML文档中。您必须使用nl2br()
转换\n
HTML换行符中的<br />
换行符。
答案 2 :(得分:0)
您是在浏览器中还是在命令行上执行此操作?
如果您正在浏览浏览器:
浏览器不会像命令行那样尊重新行;它一起扼杀他们。
如果您查看生成页面的页面源,您会看到它确实按照您的意愿输出它。
答案 3 :(得分:0)
我在学习PHP,MySQL,JavaScript等方面遇到了同样的问题。罗宾尼克松的CSS。事实证明,在_END的分号之后我有一些空格;
我知道这已经有几年了,但万一其他人对这个例子有疑问。
答案 4 :(得分:0)
您不需要“ _END”,这只是本书的一个示例。 只需要记住<<<。 所以:
echo <<<something
lorem ipsum
lorem lorem
ipsum ipsum
something;
也会工作。
至于为什么它似乎不能很好地工作,浏览器不会渲染它,但是查看源代码会按预期显示它。