Php 从字符串中删除和添加字符
我想用新行替换Php 从字符串中删除和添加字符,php,html,regex,preg-replace,str-replace,Php,Html,Regex,Preg Replace,Str Replace,我想用新行替换\n 这是来自数据库的结果: <!DOCTYPE html>\n<html>\n<body>\n<div>\n<label class=\"s20 c03\">Label</label>\n</div>\n</body>\n</html> \n\n\n\n标签\n\n\n 我希望字符串美观,例如: <!DOCTYPE html> <html> &l
\n
这是来自数据库的结果:
<!DOCTYPE html>\n<html>\n<body>\n<div>\n<label class=\"s20 c03\">Label</label>\n</div>\n</body>\n</html>
\n\n\n\n标签\n\n\n
我希望字符串美观,例如:
<!DOCTYPE html>
<html>
<body>
<div>
<label class="s20 c03">Label</label>
</div>
</body>
</html>
标签
听起来好像\n
被烧成了字符串。要使用实际换行符替换它们,请使用以下命令:
$replaced = preg_replace('/\\\\n/', '\n', $yourstring);
你应该首先找到双转义的来源 然而,要解决非常精确的数据问题,有一个方法
- 用换行符替换文字
\n
- 然后将
转换成一个简单的双引号\“
它还撤消了
\r
和八进制\000
或十六进制\x00
转义,或者(很可能您的数据库也包含这些)将双反斜杠\
恢复为单反斜杠。@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><br />
<html><br />
<body><br />
<div><br />
<label class="s20 c03">Label</label><br />
</div><br />
</body><br />
</html>
!DOCTYPE html
html
正文
div
标签class=“s20 c03”标签/标签
/div
/正文
/html
那么您想删除换行符,然后再添加它们吗?数据库中的结果有一个字符,我想删除这个特殊字符,然后在一个好的视图中再次显示它。如果您的输入与您在问题中显示的内容相同,并且您想让它看起来像您在问题中的输出,那么您只需回显它:D它最终应该是正确的正是这样。如果要替换ocCounces,请在什么上下文中使用stru replace($search,$replace,$string)
美观?您希望在显示的页面中看到它,还是仅在页面的源代码中看到它(即通过浏览器中的“查看页面源代码”)?感谢大家,但我找到了这个问题的最佳解决方案。我使用json解码感谢大家,但我找到了这个问题的最佳解决方案。我使用json解码感谢大家,但我找到了这个问题的最佳解决方案。我使用json解码感谢大家,但我找到了这个问题的最佳解决方案。我使用json解码
<?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));
?>
<!DOCTYPE html><br />
<html><br />
<body><br />
<div><br />
<label class="s20 c03">Label</label><br />
</div><br />
</body><br />
</html>