\n vs.PHP_EOL vs. <br>?

2022-08-30 11:54:36

在大多数情况下,对于一个交互式网站,当我们将多行内容输出到Web客户端浏览器时,在我看来,比其他两个网站更可取:或。<BR />\nPHP_EOL

否则,我们需要使用“”来包装输出内容,或者使用“在插入之前插入”,以便多行标记可以在HTML中生效。如以下示例所示。<pre></pre>nl2br()<BR />\n

$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 />");
}

有些人认为在将数据写入文件时很有用,例如日志文件。无论您的平台如何,它都会创建换行符。PHP_EOL

然后,我的问题是当我们使用?和 、和 之间有什么区别?任何机构都可以列出每个利弊的大清单吗?\n\nPHP_EOL<BR />


答案 1

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

所有这些都在浏览器中显示为单个空间,因为浏览器将空格折叠为显示空间以进行显示(除非您使用如前所述或CSS来更改空格的行为)。正如你所提到的,这就是进来的地方,它将把这些新的行字符转换成这样,以便在HTML显示中提供换行符。<pre><br>\n<br>


答案 2

<br>

<br>仅在分割文本时使用。您可能会看到这用于在html文档中间隔元素,但这不是它的目的,因为布局间距应该使用CSS来实现,例如.这是一个不错的用例:margin

<p>This <br> is <br> some <br> text.</p>

为了便于阅读,我通常使用换行符将文本拆分,因此我不希望在文档中呈现换行符。也就是说,标签是必要的。<br>

CSS 空格,<前>

html 元素是一个元素,默认情况下,它使用 CSS 规则,以便在该元素内呈现文档的空格。通常,无论文档中的空格量如何,都只会呈现一个空格。这种样式的一个很好的用法是用于代码块。如果我写了一个代码块,我会自然地按照我的意图将其间隔开来,并且不会特别在意在每行周围包装一个标签(无论如何,这不是语义上的),我不想用任何一个来乱扔我的代码。更糟糕的是,还有代码缩进! 在这里很有意义。<pre>white-space: pre;<p><br>whitespace: pre

<pre>
function foo() {
  //etc
}
</pre>

\r、 \n、 PHP_EOL

根据运行 php 代码的平台,您需要使用 、 或两者呈现换行符。 会自动为您选择,所以这是最动态的方法。\r\n\\r\nPHP_EOL


推荐