为什么“\ r \ n”不起作用?

时间:2013-09-10 19:07:52

标签: php

我觉得有点愚蠢的问这个,但我已经测试了我想到的一切,试着解决这个问题,但没有任何效果。我正在调用一个函数echo,如下面的代码所示:

  

echo showInfos($ uid,$ con);

好的,showInfos函数是这样的:

function showInfos($uid, $con)
{
    $ret = '';
    $query =    "SELECT Name, ProcName, ByteType, InsertTime FROM tableInfos WHERE uid = '" . mysql_real_escape_string($uid, $con) . "'";
    $res = mysql_query($query, $con);
    if($res)
    {
        while($row = mysql_fetch_array($res))
        {
            $ret .= '----New Track Data ::'."\r\n".'..ProcName:'.$row['ProcName']."\r\n";
        }       
    }
    return $ret;
}

正如你所看到的,我在回归中添加了“\ r \ n”......但由于某些未知原因,我的浏览器仍以这种方式显示所有内容:

---- New Track Data :: ..ProcName:notepad.exe ---- New Track Data :: ..ProcName:notepad.exe ---- New Track Data :: ..ProcName:notepad。 exe文件

我认为应该是这样的:

---- New Track Data ::

.. PROCNAME:Notepad.exe的

---- New Track Data ::

.. PROCNAME:Notepad.exe的

发生了什么事? 感谢关注!

3 个答案:

答案 0 :(得分:7)

因为\ r和\ n被浏览器视为空格。如果您想在浏览器中创建换行符,则需要使用<br />之类的HTML元素。

答案 1 :(得分:2)

你正在回应那些浏览器忽略的空白。浏览器需要标签来格式化文本,因此您需要将空白换行符转换为html标记,在PHP中<br />,您可以使用nl2br()函数。

echo nl2br("test line 1\ntest line 2");

答案 2 :(得分:1)

就像所有人都说的那样,HTML中的换行符需要<br/>个标记。

或者 ,如果您想共享一个预先格式化的文本块,如程序代码或调试输出,您也可以将该块包装在<pre> </pre>标签中并且浏览器会尊重您的空白。