Joh*_*Yin 29 php newline nl2br
在大多数情况下,对于一个交互式网站,当我们向Web客户端浏览器输出多行内容时,在我看来,<BR />比其他两个更优选:\n或者PHP_EOL.
否则,我们需要使用" <pre></pre>"来包装输出内容或使用之前nl2br()插入<BR />,\n因为多行标记可以在HTML中生效.像下面的例子.
$fruits = array('a'=>'apple', 'b'=>'banana', 'c'=>'cranberry');
// Multiple lines by \n
foreach( $fruits as $key => $value ){
echo "$key => $value \n" ;
}
// Multiple lines by PHP_EOL
reset( $fruits );
while ( list($key, $value) = each( $fruits ) ){
echo ("$key => $value" . PHP_EOL);
}
// Multiple lines by <BR />
reset( $fruits );
while ( list($key, $value) = each( $fruits ) ){
echo ("$key => $value <BR />");
}
Run Code Online (Sandbox Code Playgroud)
有些人认为PHP_EOL在将数据写入文件(例如日志文件)时非常有用.无论您的平台如何,它都会创建换行符.
那么,我的问题是我们何时使用\n?什么之间的区别\n和PHP_EOL,和<BR />?任何机构都可以列出各自的优缺点吗?
Nic*_*ons 34
DOS,Unix和Mac(OS X和OS X之前的版本)都使用不同的字符或字符组合来表示"转到下一行".
DOS - 使用CR + LF(ASCII 13后跟ASCII 10,或\r\n)表示新行.
Unix - 使用LF(即ASCII 10或者\n)来表示新行.
Mac(OS X之前) - 使用CR(即ASCII 13,或\r)来表示新行.
Mac(OS X) - 与Unix一样,使用LF表示新行.
因此,何时使用每一个取决于你的目标.如果您是为了特定平台而不是为了便携而编写的,请使用字符或字符组合来打破与该平台无关的线条.目的PHP_EOL是自动为平台选择正确的字符,以便您的新行与平台无关.
所有这些都显示为浏览器中的单个空间,因为浏览器将空白空间折叠到显示空间中以供显示(除非您<pre>正如您所提到的那样使用,或者改变空白行为的CSS).这就是<br>进来,如你所说,这将转换这些\n新行字符到<br>让他们提供HTML显示换行符.
<br>仅在分割文本时使用.您可能会看到这用于在html文档中间隔出元素,但这不是它的目的,因为布局间距应该用CSS实现,例如margin.这是一个不错的用例:
<p>This <br> is <br> some <br> text.</p>
Run Code Online (Sandbox Code Playgroud)
为了便于阅读,我通常会使用换行符分解我的文本,因此我不希望在文档中呈现换行符.那就是,<br>标签是必要的.
html元素<pre>是一个默认情况下使用CSS规则的元素,white-space: pre;以便在该元素中呈现文档的空白.通常,无论文档中的空白量如何,都只会呈现单个空格.这种风格的一个很好的用途是代码块.如果我编写一个代码块,我会自然地按照我的意图对其进行分隔,并且不需要特别注意<p>在每一行周围包装一个标记(这不是语义)并且我不想让我的代码<br>丢失.更糟糕的是,还有代码缩进!whitespace: pre这里很有道理.
<pre>
function foo() {
//etc
}
</pre>
Run Code Online (Sandbox Code Playgroud)
根据你的PHP代码从运行的平台上,你需要渲染断行\r,\n\或两者\r\n.PHP_EOL会自动为您选择,因此它是最具活力的方法.
将HTML换行符<br>与实际文本换行符进行比较是没有意义的.<br>只是浏览器呈现网站的线性页面,\n而且PHP_EOL是实际的源代码换行符.
正如你自己提到的那样,PHP_EOL无论平台如何都会工作,因此也是首选\n.最初,\n只是UNIX上的标准换行符,而Macintosh使用\r和Windows/DOS使用两者的组合:\r\n.PHP_EOL但是,在使用时,您根本不必担心平台.
如今,大多数系统和编辑都能够容忍你接受任何你决定使用的换行符,但使用正确的换行符显然是首选,最容易实现PHP_EOL,所以没有理由不使用它.
| 归档时间: |
|
| 查看次数: |
40748 次 |
| 最近记录: |