0

json_encode();在这个数组上使用,里面的双引号<sup id="1">打破了它......谁能解释为什么?不应该建立这个功能来自动保护这些数据吗?

array(
    'Content' => array(
        'GUID' => '7dbbfdfd-d1b2-46bd-934f-0730bcf55495',
        'Publish_Date' => '2012-04-10 19:28:13',
        'Content_Type' => 'Header',
        'Content_Body_Type' => 'OVERVIEW',
        'Paperless' => 'REQUIRED_EDELIVERY',
        'Status' => 'Proof',
        'Body' => htmlentities('<h3>This is a subhead</h3>
<p>This is sample content<sup id="1">1&nbsp;</sup>with variables:&nbsp;&lt;Outside_Sales&gt;&lt;Support_Services_Program&gt;</p>
<p>Bulleted list:</p>
<ul>
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
</ul>
<p>more text</p>'),

我使用http://jsonlint.com来确定问题

4

2 回答 2

3

这可能是一个双重转义问题,因为您正在使用htmlentities()then json_encode()

只需使用json_encode().

一般来说,最好只在输出过程中进行转义。这样您就可以维护原始数据。

于 2012-04-25T17:34:10.573 回答
0

您需要将 , 剥离。只需在每个双引号之前添加 \ - 例如: \"1\"

于 2012-04-25T17:35:05.043 回答