2012-09-27 49 views
0

我正在向服务器请求数据,并且当我将响应回显到页面上时,没有任何换行符,但是当我查看页面源时,换行符。换行符中的换行符?

这怎么可能? (即当我查看页面源代码时,如何看到换行符?)

使用<pre>标签我可以使用换行符在页面上显示数据,但我想要解析分隔行的字符串我试图了解如何在字符串中找到换行符。

有意义吗?

谢谢!

+0

HTML忽略打破空白,除了内'pre'块或者CSS属性'白色space'设置为['pre','预wrap'或'pre-line'](http://www.quirksmode.org/css/whitespace.html)。 –

+0

您是否有对服务器响应的控制权? –

+0

浏览器解析html而不是纯文本。 – 2012-09-27 00:23:00

回答

5

您没有看到换行符,因为HTML不会在标记中显示换行符。你特别需要编码换行符。最简单的方法是用<br />代替\r\n

+0

因此,即使“\ r \ n”实际上是在字符串中,您是说当我在页面上回显字符串时,浏览器会隐藏这些字符? – Nate

+0

它“忽略”他们,@Nate。 (至少在这种情况下,会造成字符之间的间隔不止。)请参阅:http://www.w3.org/TR/html401/struct/text.html#whitespace –

1

在HTML行中刹车不出现。如果要线路制动器出现,请使用<br/>。在PHP中您可以使用nl2br到线刹车转移到<br/>

要更换线刹车自己:基于

$text = str_replace(array("/r/n","/r","/n"), "<br/>", $text); 
0

ASCII换行有什么是在浏览器中显示没有影响(与文本域的可能是个例外)。

要使换行符可见,请尝试在数据发送到客户端之前或之后用<br />替换换行符。

对于服务器端试试这个:

echo str_replace(PHP_EOL, '<br />', $output); 
+0

请注意,PHP_EOL表示行结束。 ASCII 10. – Zaffy

+0

它用于匹配或创建新行/中断,其具体值取决于操作系统定义的换行符。 – Flosculus