PHP json_encode html元素包含不需要的空白

PHP json_encode html元素包含不需要的空白,php,jquery,html,Php,Jquery,Html,我这里有个问题 index.php ob_start(); include '../view/user.php'; $include = ob_get_clean(); echo json_encode(array( "success" => true, "status" => "ok", "data" => $include)); <div> <h2 class='workspace-name'> <?php echo $name; ?>

我这里有个问题

index.php

ob_start();
include '../view/user.php';
$include = ob_get_clean();

echo json_encode(array(
"success" => true,
"status" => "ok",
"data" => $include));
<div>
<h2 class='workspace-name'>
<?php echo $name; ?>
</h2>
</div>
user.php

ob_start();
include '../view/user.php';
$include = ob_get_clean();

echo json_encode(array(
"success" => true,
"status" => "ok",
"data" => $include));
<div>
<h2 class='workspace-name'>
<?php echo $name; ?>
</h2>
</div>

问题是,如果我在
user.php
中正确缩进HTML元素(为了可读性),那么如果我使用
jquery.get
获取JSON数据类型,将会有很多
\r\n\t\t\t

如何摆脱
/r/t/n
?虽然它并没有显示在屏幕上,但我感觉不太对劲。有没有更好的解决办法? 如有任何问题,请在评论中留言,我将对此进行编辑。谢谢

为什么不使用替换这些字符呢

"data" => str_replace(array("\n","\r","\t"),'',$include)));
编辑:或在处理类似
的HTML时使用以下命令(感谢@Salman A指出这一点)


这太难看了,但我就是这么做的:

$html = str_replace("\t",'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;',$html);
$html = str_replace("\r\n",'<br />',$html);
$html=str\u replace(“\t”,”$html);
$html=str_replace(“\r\n”、“
”、$html);

为了得到更好的答案,我将遵循这一点。必须有一个regex方法。

简单,无需调用regex引擎。这应该行得通。实际上这是个坏例子
是有效的HTML,它应该显示一个带有文本的链接
单击此处
,但它会转到
。标签被破坏,文本变成一个单词。恩,一个简单的解决方案是确保HTML不是这种格式?因为它是通过../view/user.php生成的,所以他可以确保HTML不是那种格式。虽然您提出了一个有效的观点,但空白的意义在于它不会影响代码的输出。在第二个示例中,您将得到额外的空格:)我希望这能回答您的两个评论。
$include = preg_replace("@[\\r|\\n|\\t]+@", "", ob_get_clean());