4

我这里有问题。

index.php

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

echo json_encode(array(
"success" => true,
"status" => "ok",
"data" => $include));

user.php

<div>
<h2 class='workspace-name'>
<?php echo $name; ?>
</h2>
</div>

问题是如果我user.php正确缩进 HTML 元素(为了便于阅读),将会有很多\r\n\t\t\t,前提是我jquery.get用来获取 JSON 数据类型。

我该如何摆脱/r/t/n?尽管它没有显示在屏幕上,但我对此感觉不对。有没有更好的解决方案?有任何问题请在评论中留言,我将对此进行编辑。谢谢

4

3 回答 3

6

为什么不使用str_replace()来替换这些字符。

"data" => str_replace(array("\n","\r","\t"),'',$include)));

编辑:或者在处理 HTML 时使用以下内容<a\thref='#'>Click\n\nHere</a>(感谢@Salman A 指出这一点)

"data" => str_replace(array("\n","\r","\t"),' ',$include)));
于 2012-11-30T16:17:47.713 回答
0

这太丑陋了,但我就是这样做的:

$html = str_replace("\t",'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;',$html);
$html = str_replace("\r\n",'<br />',$html);

我会关注这个以获得更好的答案。必须有一个正则表达式的方式。

于 2012-11-30T16:19:41.430 回答
-1
$include = preg_replace("@[\\r|\\n|\\t]+@", "", ob_get_clean());
于 2012-11-30T16:23:40.250 回答