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 に答える