【发布时间】:2015-05-22 09:39:39
【问题描述】:
我正在从 mssql 数据库中获取一个字符串到我的 .php 页面。
为了好看,我想用 <br /> 替换换行符
所以我尝试了以下方法(一次一个):
echo nl2br($data);
echo str_replace(chr(10), "<br />",str_replace(chr(13), "<br />", $data))
echo str_replace("\n", "<br />",str_replace("\r", "<br />", $data))
HTML 源代码看起来没问题:
blablalba<br />sdsddsfdfs<br />fds<br />dfsdfs<br />fdsdsf<br />:_k,ölmjlö<br />öä.löälöä#<br />
但 HTML 上的结果为空,Chrome 开发者工具显示如下:
<br><br><br><br><br><br><br>
我错过了什么?
echo $data 给了我正确的结果,但没有 <br />'s
blablalba sdsddsfdfs fds dfsdfs fdsdsf :_k,ölmjlö öä.löälöä#
问候
【问题讨论】:
-
str_replace不是多字节安全的,因此您不能将它与多字节编码字符串一起使用。 -
"\n"等于chr(10)和"\r"等于chr(13)...并且 nl2br() 替换它们。检查你$data包含数据。 -
@CasimiretHippolyte 这只是一次尝试,我很绝望:o .$data 包含我在 HTML 源代码中看到的数据
-
echo $data给你什么?当 chrome 开发者工具告诉你<br><br><br>,那么你究竟是从哪里获取其他 HTML 源代码的? -
其他,尝试在 html 源代码中直接用
<br>替换换行符是危险的,因为换行符可以在标签内。
标签: php sql-server newline