2012-03-19 6 views
1

PHPでjsonをエコーし​​ようとすると、\ n \ r \ tが返されます。どのように私はそれらを削除できますか?Jsonが文字を返します

  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ファイルです:str_replaceまたはpreg_repalce後

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

</table> 

は、取得しています。ここ

は私のコードです:

{"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|\\/|\\\"][email protected]", "", $content); 

しかし、なぜこの問題が発生したのか分かりません。

+0

を? – ManseUK

+0

テンプレートから来ているように聞こえるかもしれませんね。あなたはそれらを置き換えることができますね。 –

+0

私はそれらを削除したい – Vahan

答えて

2

使用してコンテンツから不必要な空白を削除します。あなたがそれらを削除するか、有効なHTML( `
`)とそれらを交換したいん

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

$datajson_encodeに追加する前に、新しいラインとタブを$contentから削除してください。

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

「\\ n」を2回エスケープする必要があります。 – ManseUK

+0

ああ、文字は実際には出力ではありません:D – scibuff

+0

配列を 'array(" \\ n "、" \\ t "、" \\ r ")'として指定する必要があるということは、 – ManseUK

関連する問題