【问题标题】:problems with php newlinephp换行的问题
【发布时间】:2012-11-22 15:21:43
【问题描述】:

我有这个代码

if($hgroup['groupid'] == $row_groups['groupid']){
  $problem++;
  $hostname=DBfetch($cursor_gethost_again);
  $replace_macro=array('/{HOSTNAME}/','/{HOST.NAME}/');
  $problem_text=$problem_text.$trigger['description'];
  $problem_text=preg_replace($replace_macro,$hostname['name'],$problem_text);
  $problem_text=$problem_text."\r\n";
}

这是一个循环生成的代码。任何人都可以帮助我如何制作那个愚蠢的换行符吗?我必须这样做,因为我正在修改一个代码。所以我想保持这种布局。
没用。它将与文本一起打印。我也尝试将 preg_replace 替换为<br />

【问题讨论】:

  • 对不起,我不完全理解你。你想用换行符做什么?
  • 我很难理解你在这里问的是什么。

标签: php newline


【解决方案1】:

如果您尝试打印 HTML,则新行不是使用 \r\n,而是附加 <br/>

在评论中,您确认您正在尝试在浏览器中查看此内容。正如 Kolink 所说,浏览器会将空格折叠成空格,因此您会丢失新行信息。

如果您要将值输出到标准输出,例如控制台,那么\r\n 是解决方案。如果您正在处理要写入的文件,也是如此。

如果您想将它同时输出到标准输出和 HTML,我建议先用\r\n 填充它,输出您的变量,然后使用str_replace(文档here)转换您的所有\r\n<br/>

$html_problem_text = str_replace('\r\n', '<br/>', $problem_text);

【讨论】:

  • so :) 我认为我是智障。我正在使用警报框进行调试。换行符一切正常。然后我在想有css问题。我有从某处继承的空白属性和空白:预包装;成功了。但是无论如何感谢您的帮助:*我只是有点迟钝和过度劳累:D
【解决方案2】:

只是猜测一下,您是在浏览器中查看输出吗?因为浏览器会将换行符(或任何空格)折叠成一个(水平)空格。

您需要使用&lt;br /&gt; 标签在浏览器中创建换行符,或者您可以使用&lt;pre&gt; 或一些CSS 来强制浏览器呈现换行符。

【讨论】:

  • 正如我所说,我试图以某种方式替换它。当我回家时,我会尝试该功能。是的,我正在查看这个 ij 浏览器。但它接受了 \n 但它不会中断
【解决方案3】:

http://php.net/manual/en/language.types.string.php

\n = CR (Carriage Return) // new line character in Unix
\r = LF (Line Feed) // new line character in Mac OS
\n\r = CR + LF // new line character in Windows

【讨论】:

    【解决方案4】:

    如果您以 HTML 格式打印:

    你可以使用:

    $problem_text=$problem_text."<br/>";
    

    如果您愿意,也可以保留$problem_text=$problem_text."\r\n";,但在输出时,请执行以下操作:

    nl2br($myvariable);
    

    此函数基本上是“新行到 br”,它将新行替换为 &lt;br/&gt;,因此您不需要在变量中包含 "&lt;br/&gt;"

    另外,您可以使用".=",这意味着“将此文本连接到变量:

    $problem_text=$problem_text."\r\n";
    $problem_text .= "\r\n";
    

    它们的含义相同,根据相同的规则,还有其他运算符,例如 += 或 -= 用于算术运算(.= 仅用于连接字符串)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-14
      相关资源
      最近更新 更多