我想用新行代替\n
。
这是数据库的结果:
<!DOCTYPE html>\n<html>\n<body>\n<div>\n<label class=\"s20 c03\">Label</label>\n</div>\n</body>\n</html>
我希望字符串在美学上令人愉悦,例如:
<!DOCTYPE html>
<html>
<body>
<div>
<label class="s20 c03">Label</label>
</div>
</body>
</html>
答案 0 :(得分:0)
听起来\n
被烧成了字符串。要用实际的换行符替换它们,请使用:
$replaced = preg_replace('/\\\\n/', '\n', $yourstring);
答案 1 :(得分:0)
你绝对应该首先找到双重转义的来源。
要撤消您确切的数据问题,不过有stripcslashes()
。
\n
。\"
变为简单的双引号。它还撤消\r
和八进制\000
或十六进制\x00
转义,或者(很可能是您的数据库也包含这些)双反斜杠\\
重新转换为奇异的。
答案 2 :(得分:0)
@ahmadalbayati我认为是在正确的轨道上。
如果您只是希望数据库返回的字符串在返回页面的标记中看起来非常 (即通过浏览器中的“查看页面源”),只需将其回显到您想要的位置即可标记...
<?php
$dbResponse = "<!DOCTYPE html>\n<html>\n<body>\n<div>\n<label class=\"s20 c03\">Label</label>\n</div>\n</body>\n</html>";
echo $dbResponse;
?>
...产生以下标记:
<!DOCTYPE html>
<html>
<body>
<div>
<label class="s20 c03">Label</label>
</div>
</body>
</html>
如果要在呈现返回的页面时显示数据库返回的字符串,可以将str_replace
和htmlspecialchars
函数结合使用,如下所示......
<?php
$dbResponse = "<!DOCTYPE html>\n<html>\n<body>\n<div>\n<label class=\"s20 c03\">Label</label>\n</div>\n</body>\n</html>";
echo str_replace("\n", "<br />\n", htmlspecialchars($dbResponse));
?>
...,产生以下显示页面......
&lt;!DOCTYPE html&gt;
&LT; HTML&GT;
&LT;身体GT;
&LT; DIV&GT;
&lt; label class =&#34; s20 c03&#34;&gt;标签&lt; / label&gt;
&LT; / DIV&GT;
&LT; /体&GT;
&LT; / HTML&GT;
......以及后面的标记:
<!DOCTYPE html><br />
<html><br />
<body><br />
<div><br />
<label class="s20 c03">Label</label><br />
</div><br />
</body><br />
</html>