PHP:尝试用“\ n”创建一个新行

时间:2010-04-20 11:41:06

标签: php newline

我正在写这个:

echo "foo";
echo "\n";
echo "bar";

和“bar”未写在下面的行中。

我做错了什么?

哈维

15 个答案:

答案 0 :(得分:42)

HTML中的换行符通过<br>表示,而不是通过\n表示。

在PHP中使用\n在源代码中创建换行符,HTML源代码布局与HTML屏幕布局无关。

答案 1 :(得分:19)

如果要将新行字符插入纯文本流,则可以使用独立于操作系统的全局PHP_EOL

echo "foo";
echo PHP_EOL ;
echo "bar";

在HTML术语中,如果查看页面的源代码,您会在foo和bar之间看到换行符。

ergo,如果您输出say,一个选择框的值循环,并且您认为html源代码更“漂亮”或以后更容易阅读,那么它非常有用。 e.g。

foreach( $dogs as $dog )
echo "<option>$dog</option>" . PHP_EOL ;

答案 2 :(得分:17)

如果要编写纯文本,必须确保将内容类型设置为Content-Type: text/plain。例如:

header('Content-Type: text/plain');

如果您正在处理HTML,则有两种选择。一种是使用<br>(或<br />用于XHTML)插入新行。另一种是将纯文本放在<pre>元素中(在本例中“pre”代表预格式化)。

答案 3 :(得分:5)

PHP生成HTML。你可能想要:

echo "foo";
echo "<br />\n";
echo "bar";

答案 4 :(得分:4)

如果您的文字有换行符,请使用nl2br php函数:

<?php
$string = "foo"."\n"."bar";
echo nl2br($string);
?>

这应该在浏览器中看起来不错

答案 5 :(得分:3)

假设您在网络浏览器中查看输出,则至少有两个选项:

  1. 使用<pre>语句

  2. 围绕文本块
  3. 将您的\n更改为HTML <br>代码(<br/>也可以)

答案 6 :(得分:2)

由于未提及,您还可以使用CSS空白属性

body{
    white-space:pre-wrap;
}

告诉浏览器保留空格以便

<body>
    <?php
        echo "hello\nthere";
    ?>
</body>

会显示

hello
there

答案 7 :(得分:2)

我们可以使用\ n作为php中的新行。

代码段:

 <?php
  echo"Fo\n";
  echo"Pro";
?>

输出:

  


  临

答案 8 :(得分:1)

如果您检查页面的源代码,它将写在新行上。如果您希望它在浏览器中呈现时显示在新行上,则您将使用<br />标记。

答案 9 :(得分:1)

这对我来说非常有用......

echo nl2br("\n");

参考:http://www.w3schools.com/php/func_string_nl2br.asp

希望有所帮助:)

答案 10 :(得分:1)

这个答案非常明显,我花了很长时间才弄明白:

echo "foo
bar";

我知道它看起来像是在包装。不是。我所做的就是在foobar之间的字符串中间点击 return 。它在HTML源代码中创建了一个新行,使您的PHP看起来很糟糕。这是在Linux / Apache。

答案 11 :(得分:0)

echo "foo<br />bar";

答案 12 :(得分:0)

我们可以使用两种类型

在php中应用\n
  1. 使用CSS

    body {
        white-space: pre-wrap;
    }
    

    告诉浏览器保留空格以便

    <body>
        <?php
            echo "Fo\n Pro";
        ?>
    </body>
    

    结果:

      


      临

  2. 使用nl2br

    nl2br :在字符串中的所有换行符之前插入HTML换行符

    <?php
        echo nl2br("Fo.\nPro.");
    ?>
    

    结果

      

    佛。
      亲。

答案 13 :(得分:0)

html元素的换行取决于它的white-space样式属性。 在大多数元素中,默认white-spaceauto,这意味着当文本到达元素宽度时的折线。 如果您想让文本以\n开头,则必须为父元素指定样式: white space: pre-line,它将读取\n并中断换行,或者 white-space: pre,它也会读取\t等。 注意:要将\n写为换行符而不是字符串,必须使用双引号的字符串("\n") 如果您不想使用空格,则始终欢迎使用 HTML元素作为换行符,即<br/>

答案 14 :(得分:-1)

$a = 'John' ; <br/>
$b = 'Doe' ; <br/>
$c = $a.$b"&lt;br/>";