32

PHP では、json_encode()HTML5 データ属性で配列をエコーするために使用します。JSON ではjson_encode()、二重引用符でカプセル化された値が必要であり、生成されます。そのため、次のように、データ属性を一重引用符で囲みます。

<article data-tags='["html5","jquery","php","test's"]'>

ご覧のとおり、最後のタグ (test の) には一重引用符が含まれておりjson_encode()、オプションなしで使用すると解析の問題が発生します。

だから私はパラメーターで使用json_encode()JSON_HEX_APOS、一重引用符がエンコードされているため、解析は問題ありませんが、このようにする欠点はありますか?

4

2 に答える 2

59

HTML にエコーされたデータを HTML エスケープする必要があります。

printf('<article data-tags="%s">',
    htmlspecialchars(json_encode(array('html5', ...)), ENT_QUOTES, 'UTF-8'));
于 2012-01-12T09:19:36.617 に答える
13

または組み込みオプションを使用します。

json_encode(array('html5', ...), JSON_HEX_APOS)

マニュアルで確認できます:http://php.net/manual/en/json.constants.php#constant.json-hex-apos

于 2016-12-14T13:44:17.960 に答える