【问题标题】:PHP won't output new line [duplicate]PHP不会输出新行[重复]
【发布时间】:2013-06-07 19:43:53
【问题描述】:

我已经尝试了所有在 PHP 中输​​出换行符的方法。为什么以下不起作用? :

<?php

$foo = 'bar'; 
echo "Hello \n $foo!";

?>

这应该在 hello 和 bar 之间输出一个换行符,但事实并非如此。

我也试过 \r\n 而不是 \n

【问题讨论】:

  • 换行符没有任何意义在 HTML 中。
  • @deceze 从技术上讲,它应该与空格相同。
  • @NoBugs 好的,“不是什么”不太正确... :)
  • 我认为鼓励人们投反对票,因为当您将鼠标悬停在投反对票按钮上时,它会显示 “这个问题没有显示任何研究工作;它不清楚或没有用”
  • @Henry SO (至少部分)应该是一个编程问题的数据库在其他任何地方都不容易回答。这里的问题是第一件事应该在任何 HTML 教程之后遇到。当您搜索真正的问题时,我们不希望这会阻塞搜索结果。因此,投反对票。

标签: php


【解决方案1】:

如果您将它用作命令行脚本,这将起作用。我会为此使用PHP_EOL,因为它为操作系统选择了正确的换行符。

但是,如果您使用 HTML(例如在浏览器中查看结果),则必须使用 HTML 换行方式,即:&lt;br /&gt;

【讨论】:

  • 你帮了我很多。
【解决方案2】:

要在 HTML 中输出新行,您需要使用 HTML 的新行表示,即&lt;br/&gt;

php 有一个功能可以将所有自然换行转换为 HTML 换行 > nl2br()

那么你的代码应该是这样的

<?php

$foo = 'bar'; 
echo nl2br("Hello \n $foo!");

?>

【讨论】:

    【解决方案3】:

    在html中插入换行符时使用&lt;br&gt;

    【讨论】:

    • 谢谢,刚刚做到了
    • @user2463517 欢迎来到 Stack Overflow。请使用您选择的答案左侧的投票总数下方的复选标记选择您接受的答案。
    【解决方案4】:

    要直观地输出新行(在浏览器中),您需要HTML

    echo "Hello\n<br />$foo!";
    

    \n 是系统换行符。

    【讨论】:

    • 仅在使用 PHP 打开网站时。 PHP 可以在控制台中执行。对于控制台,他的代码会运行得很好。对于网页,您的代码将运行正常。
    • 为了澄清,要使用呈现 HTML 的程序(即浏览器)输出新行,您需要 HTML。如果您在视觉上输出新行,例如在文件或其他地方,您可能需要回车和换行。
    • @AlejandroIván 用 99% 的把握猜测他们是在浏览器中输出的。
    • 是的,我也猜到了。我仅作为参考发表评论;)
    • 在命令行这个你的代码返回 2x 新行。最好在\n&lt;br&gt; 或最好的nl2br($str . PHP_EOL); 上使用
    【解决方案5】:

    试试这个:

    <?php
    
    $foo = 'bar'; 
    echo "Hello <br> $foo!";,
    
    ?>
    

    【讨论】:

      【解决方案6】:

      如果您查看源代码,您将看到它实际上确实有一个新行,但 HTML 中的空格无关紧要(显示输出的浏览器所期望的),但在您的语句中添加 &lt;br /&gt; 会产生新行,因为这是浏览器读取新行并显示它们的方式。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-07-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-17
        • 2012-12-22
        • 2018-03-03
        相关资源
        最近更新 更多