【问题标题】:Not getting a new line when using use "\n" in PHP在 PHP 中使用“\n”时没有换行
【发布时间】:2016-02-12 15:25:39
【问题描述】:

我正在尝试在 PHP 中使用 \n 在我的网站上获得一个新行,但它不起作用。

这是我的代码:

if(isset($_POST['selected'])){
    $selected_val = $_POST['selected']; 
    // Storing Selected Value In Variable
    echo "\n";
    echo $selected_val;  // Displaying Selected Value
}

【问题讨论】:

  • 如果你要回显到一个网页,你需要使用<br />
  • \n 仅影响源(当您检查时),要显示为 HTML,您必须使用 <br />。或者,您可以使用函数nl2br($text);\n 转换为<br />
  • 您可以使用PHP_EOL 进行控制台输出,对于html - 是的,您需要'
    '-tag

标签: php html newline


【解决方案1】:

在回显时,使用<br />

\n 在 HTML 页面中不起作用,只能在源代码中,从命令行执行 PHP 或写入文本文件。

【讨论】:

    【解决方案2】:

    这本质上归结为将以下文本保存到 HTML 文件并期望它具有可视换行符:

    one line
    another line
    

    要在 HTML 中实现视觉换行,您需要 br 元素:

    one line<br />
    another line
    

    所以用echo '&lt;br /&gt;';替换你的echo "\n";

    如果您有一个包含换行符的字符串,您可以使用nl2br 内置的 php 为您完成工作:

    <?php
    
    $string = 'one line' . "\n" . 'another line';
    echo nl2br($string);
    

    【讨论】:

      【解决方案3】:

      在编写 PHP 代码时,需要区分两个截然不同的概念:

      1. 转到您生成的代码中的新行,您可以使用"\n"
      2. 转到您生成的 HTML 网页中的新行,您可以使用 &lt;br /&gt;

      因此,选项 1 使您转到您生成的代码中的新行,但您不会转到您生成的 HTML 网页中的新行。同样,选项 2 使您转到您生成的 HTML 网页中的新行,但您不会转到您生成的代码中的新行。

      如果您想同时在您的代码和 HTML 输出中转到下一行,您可以将 "\n"&lt;br /&gt; 结合起来:

      echo "<br />\n";
      

      【讨论】:

        【解决方案4】:

        在网页上,在 &lt;pre&gt; 块之外,所有出现的制表符和换行符都被同化为一个空格。

        例如:

        echo "<pre>\n" . $selected_val . "</pre>";
        

        但如果您的代码用于调试目的,您最好使用print_r 来检查您的变量值。如:

        echo "<pre>" . htmlspecialchars(print_r($select_val), true) . "</pre>";
        

        htmlspecialchars 函数由于内容的可变性而使您免受格式错误的 HTML 的影响。

        【讨论】:

        • 这是一个有效的解释,但不能提供解决方案。请在您的答案中添加解决方案以解决问题。
        猜你喜欢
        • 2013-02-12
        • 1970-01-01
        • 1970-01-01
        • 2023-03-15
        • 2022-06-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多