0

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

回声显示信息($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”...但是由于某些未知原因,我的浏览器仍然以这种方式显示所有内容:

----新轨道数据 :: ..ProcName:notepad.exe ----新轨道数据 :: ..ProcName:notepad.exe ----新轨道数据 :: ..ProcName:notepad.exe

我认为它应该是这样的:

----新赛道数据::

..ProcName:notepad.exe

----新赛道数据::

..ProcName:notepad.exe

这是怎么回事?感谢关注!

4

3 回答 3

7

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

于 2013-09-10T19:09:27.743 回答
2

您正在回显空白,浏览器会忽略这些空白。浏览器需要标签来格式化文本,因此您需要将空白换行符转换为 html 标签,<br />在 php 中您可以使用该nl2br()功能。

echo nl2br("test line 1\ntest line 2");
于 2013-09-10T19:09:34.523 回答
1

就像每个人都说的那样,您需要<br/>HTML 中的换行符标签。

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

于 2013-09-10T19:23:41.187 回答