Php json字符串中的HTML导致错误

Php json字符串中的HTML导致错误,php,json,Php,Json,我有以下php脚本中的简单json echo '{"rows":"'.$rows.'", "other_prop":{}}'; 而$rows是: <tr><td>this is gant</td> <td>2015-05-21 12:42:11</td> <td><pre>[gant id="135"]</pre></td> <td&

我有以下php脚本中的简单json

echo '{"rows":"'.$rows.'", "other_prop":{}}';
$rows
是:

<tr><td>this is gant</td>
        <td>2015-05-21 12:42:11</td>
        <td><pre>[gant id="135"]</pre></td>
        <td><a href="#" class="button load-gant" data-gantname="_GANT_this_is_gant__2015-05-21 12:42:11">Load</a> <a href="" class="button delete-gant red" data-gantname="_GANT_this_is_gant__2015-05-21 12:42:11">Delete</a></td></tr><tr><td>bunda</td>
        <td>2015-05-21 12:47:36</td>
        <td><pre>[gant id="139"]</pre></td>
        <td><a href="#" class="button load-gant" data-gantname="_GANT_bunda__2015-05-21 12:47:36">Load</a> <a href="" class="button delete-gant red" data-gantname="_GANT_bunda__2015-05-21 12:47:36">Delete</a></td></tr>
这是甘特
2015-05-21 12:42:11
[甘特id=“135”]
限制
2015-05-21 12:47:36
[甘特id=“139”]
我不停地说

{"rows":"<tr><td>this is gant<\/td>\r        <td>2015-05-21 12:42:11<\/td>\r\t        <td><pre>[gant id=\"135\"]<\/pre><\/td>\r\t\t        <td><a href=\"#\" class=\"button load-gant\" data-gantname=\"_GANT_this_is_gant__2015-05-21 12:42:11\">Load<\/a> <a href=\"\" class=\"button delete-gant red\" data-gantname=\"_GANT_this_is_gant__2015-05-21 12:42:11\">Delete<\/a><\/td><\/tr><tr><td>bunda<\/td>\r\t\t\t        <td>2015-05-21 12:47:36<\/td>\r\t\t\t\t        <td><pre>[gant id=\"139\"]<\/pre><\/td>\r\t\t\t\t\t        <td><a href=\"#\" class=\"button load-gant\" data-gantname=\"_GANT_bunda__2015-05-21 12:47:36\">Load<\/a> <a href=\"\" class=\"button delete-gant red\" data-gantname=\"_GANT_bunda__2015-05-21 12:47:36\">Delete<\/a><\/td><\/tr>"}
第2行的分析错误: {“行”:“这是甘 -------------^ 应为“STRING”、“NUMBER”、“NULL”、“TRUE”、“FALSE”、“{”、“[” 我所做的是尝试使用
htmlentities()
对每个双引号进行转义,并对每个标记进行转义


问题是什么?如何解决这个问题?

为什么不使用
json\u encode
和php对象?例如:

<tr><td>thisisgant</td><td>2015-05-2112: 42: 11</td><td><pre>[gant id='135']</pre></td><td><a href='#' class='buttonload-gant' data-gantname='_GANT_this_is_gant__2015-05-2112: 42: 11'>Load</a> <a href='' class='buttondelete-gantred' data-gantname='_GANT_this_is_gant__2015-05-2112: 42: 11'>Delete</a></td></tr><tr><td>bunda</td> <td>2015-05-21 12:47:36</td><td><pre>[gant id='139']</pre></td><td><a href='#' class='button load-gant' data-gantname='_GANT_bunda__2015-05-21 12:47:36'>Load</a> <a href='' class='button delete-gant red' data-gantname='_GANT_bunda__2015-05-21 12:47:36'>Delete</a></td></tr>

使用此值
$rows

thisisgant2015-05-2112:42:11[gant id='135']bunda 2015-05-21 12:47:36[gant id='139']

只需将值保留在一行中,并将所有的
替换为

您必须这样定义变量才能在JSON中使用它,它将是字符串

$row=“这是甘特”+
"2015-05-21 12:42:11"+
“[gant id='135']”+
“邦达”+
"2015-05-21 12:47:36"+
“[gant id='139']”+
" ";

Uhm…
$rows
不包含json。@YUNOWORK:updated。rows只是一个以字符串作为属性的属性value@DarielPratama我猜问题出在你的
在html中没有转义,并且正在破坏JSON字符串。您可以发布通过lint输入的整个JSON吗?或者查看我的答案,以获取为您处理此问题的代码
{"rows":"<tr><td>this is gant<\/td>\r        <td>2015-05-21 12:42:11<\/td>\r\t        <td><pre>[gant id=\"135\"]<\/pre><\/td>\r\t\t        <td><a href=\"#\" class=\"button load-gant\" data-gantname=\"_GANT_this_is_gant__2015-05-21 12:42:11\">Load<\/a> <a href=\"\" class=\"button delete-gant red\" data-gantname=\"_GANT_this_is_gant__2015-05-21 12:42:11\">Delete<\/a><\/td><\/tr><tr><td>bunda<\/td>\r\t\t\t        <td>2015-05-21 12:47:36<\/td>\r\t\t\t\t        <td><pre>[gant id=\"139\"]<\/pre><\/td>\r\t\t\t\t\t        <td><a href=\"#\" class=\"button load-gant\" data-gantname=\"_GANT_bunda__2015-05-21 12:47:36\">Load<\/a> <a href=\"\" class=\"button delete-gant red\" data-gantname=\"_GANT_bunda__2015-05-21 12:47:36\">Delete<\/a><\/td><\/tr>"}
<tr><td>thisisgant</td><td>2015-05-2112: 42: 11</td><td><pre>[gant id='135']</pre></td><td><a href='#' class='buttonload-gant' data-gantname='_GANT_this_is_gant__2015-05-2112: 42: 11'>Load</a> <a href='' class='buttondelete-gantred' data-gantname='_GANT_this_is_gant__2015-05-2112: 42: 11'>Delete</a></td></tr><tr><td>bunda</td> <td>2015-05-21 12:47:36</td><td><pre>[gant id='139']</pre></td><td><a href='#' class='button load-gant' data-gantname='_GANT_bunda__2015-05-21 12:47:36'>Load</a> <a href='' class='button delete-gant red' data-gantname='_GANT_bunda__2015-05-21 12:47:36'>Delete</a></td></tr>
    $row="<tr><td>this is gant</td>"+
    "<td>2015-05-21 12:42:11</td>"+
    "<td><pre>[gant id='135']</pre></td>"+
    "<td><a href='#' class='button load-gant' data-gantname='_GANT_this_is_gant__2015-05-21 12:42:11'>Load</a><a href='' class='button delete-gant red' data-gantname='_GANT_this_is_gant__2015-05-21 12:42:11'>Delete</a></td></tr><tr><td>bunda</td>"+
    "<td>2015-05-21 12:47:36</td>"+
    "<td><pre>[gant id='139']</pre></td>"+
    "<td><a href='#' class='button load-gant' data-gantname='_GANT_bunda__2015-05-21 12:47:36'>Load</a> <a href='' class='button delete-gant red' data-gantname='_GANT_bunda__2015-05-21 12:47:36'>Delete</a></td></tr>";