代码之家  ›  专栏  ›  技术社区  ›  Yarin

新行不在PHP中工作?

  •  0
  • Yarin  · 技术社区  · 14 年前

    这是我的完整网页,PHP代码直接取自 here . 然而,页面上的所有文本都呈现在一行上?

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Untitled Document</title>
    </head>
    <body>
    
    <?php
    
    echo "This spans
    multiple lines. The newlines will be
    output as well";
    
    echo "This spans\nmultiple lines. The newlines will be\noutput as well.";
    
    ?>
    
    </body>
    </html>
    
    5 回复  |  直到 14 年前
        1
  •  2
  •   Anthony Forloney    14 年前

    HTML不支持换行,因此必须使用 <br> .

    你可以用 nl2br 它将转换所有 \n 在你的字符串中, <BR> 这将产生你想要的输出。

        2
  •  3
  •   BoltClock    14 年前

    新行出现在源代码中。但是,浏览器不会将换行显示为页面上的换行符,因此需要使用换行标记。( <br /> )相反。

        3
  •  1
  •   Adam Vandenberg    14 年前

    HTML将连续的空白(在大多数上下文中)合并为一个空格字符。你要么输出段落( <p>...</p> )或其他带边框或填充的标记,或输出显式换行符( <br> )

        4
  •  1
  •   alex    14 年前

    新行确实会被打印出来,但是HTML并不关心空白(除非你明确告诉它,看看 pre 元素和 white-space: pre )

    浏览器基本上会将所有 \s 在查看HTML时放在一个空间中。

        5
  •  1
  •   David W.    14 年前

    噢,新的生产线在那里,而且还在工作。在HTML上做一个Gander 来源 (即当您右键单击浏览器并选择 查看页面源 )而不是在浏览器中显示的结果。你会看到那里的新行。

    问题是HTML本身并不关心如何格式化空白。对于HTML,所有空白,不管是标签、新行还是一大堆空格,都会转换为单个空格。

    要让HTML显示换行符,您必须使用HTML标记,例如 <pre> , <p> <br/>

    我发现在PHP程序中创建自己的 echoLine 在两个函数中 \n 和A <br/> . 这样,我可以在网页源代码和HTML显示中看到它。