Json返回字符

时间:2012-03-19 13:03:35

标签: php javascript json

当我试图在php中回显json时,它返回 \ n \ r \ t 。我怎么能删除它们?

这是我的代码:

            ob_start();
                $this->load->view('competition/template',$q);
                $content = ob_get_clean();
                $data['content'] = $content;

             echo json_encode($data);

我得到了:

</table>{"ok":1,"content":"<table>\r\n   <tr>\r\n\t    <td>Competitor name<\/td>\r\n\t    <td><input type=\"text\" name=\"competitor_name[2]\" \/><\/td>\r\n   <\/tr>\r\n   <tr>\r\n   <\/tr>\r\n   <tr>\r\n   <\/tr>\r\n   <tr>\r\n   <\/tr>\r\n<\/table>"}

这是template.php文件:

 <table>
   <tr>
        <td><?php echo $this->__('Competitor name');?></td>
        <td><input type="text" name="competitor_name[<?php echo $id?>]" /></td>
   </tr>

</table>

在str_replace或preg_repalce之后,我得到:

{"ok":1,"content":"<table>   <tr>    <td>Competitor name<\/td>    <td><input type=\"text\" name=\"competitor_name[1]\" \/><\/td>   <\/tr> <\/table>"}

现在我的问题是 \。

谢谢。

好的,我找到了anwser。这是:

 $content = preg_replace("@[\\r|\\n|\\t|\\/|\\\"]+@", "", $content);

但我不确定为什么我会遇到这个问题。

3 个答案:

答案 0 :(得分:3)

$data['content'] = str_replace( array("\n","\t","\r"), "", $content );

答案 1 :(得分:2)

使用以下内容从您的内容中删除不必要的空格:

$content = preg_replace("@[\\r|\\n|\\t]+@", "", $content);
$data['content'] = $content;
echo json_encode($data);

答案 2 :(得分:1)

$content移除新的行和标签,然后将其添加到$datajson_encode