我有JSON的问题,传递html代码,我不明白,因为我使用addslashes php函数进行了转义。
这是失败的JSON:
使用php JSON有效:
<?php if(count($articles)): ?>
{"items":[
<?php foreach($articles as $key => $article): ?>
<?php if($key==0 ):?>
{
"foto_g": "<?php echo $article->getRutafoto() ?>",
"foto_th": "<?php echo $article->getRutathumb() ?>"
}
<?php else: ?>
,
{
"foto_g": "<?php echo $article->getRutafoto() ?>",
"foto_th": "<?php echo $article->getRutathumb() ?>"
}
<?php endif ?>
<?php endforeach ?>
],
"nom_coleccio": "<?php echo $coleccio->getNom()?>"
,
"descripcio_coleccio": "<?php echo addslashes($coleccio->getDescripcio(ESC_RAW))?>"
}
<?php endif ?>
有问题的结果是:
{
"descripcio_coleccio": "<p>El delta de l\'Ebre ha estat l\'escenari d\'inspiració d\'aquesta col·lecció.</p>
<p>La línia de l\'horitzó i el color del paisatge materialitzats en alumini s\'uneixen per a crear volum en forma de joia.</p>"
}
什么时候出现问题?
谢谢你的问候
答案 0 :(得分:3)
如果可能,您应该使用正确的编码功能。如果是JSON,您应该使用json_encode
,即使只是针对特定值。
但是如果使用关联键在数组中收集值并且仅在结尾使用json_encode
会更容易:
if (count($articles)) {
$items = array();
foreach ($articles as $key => $article) {
$items[] = array(
"foto_g" => $article->getRutafoto(),
"foto_th" => $article->getRutathumb()
}
}
$data = array(
"items" => $items,
"nom_coleccio" => $coleccio->getNom(),
"descripcio_coleccio" => $coleccio->getDescripcio(ESC_RAW)
);
echo json_encode($data);
}
答案 1 :(得分:2)
不要那样做!用PHP正确构造JSON:
<?php
echo json_encode(array
(
"descripcio_coleccio" => $coleccio->getDescripcio(ESC_RAW)
));
?>
答案 2 :(得分:0)
不应转义这些单引号:
{
"descripcio_coleccio": "<p>Eldeltadel'Ebrehaestatl'escenarid'inspiraciód'aquestacol·lecció.</p><p>Lalíniadel'horitzóielcolordelpaisatgematerialitzatsenaluminis'uneixenperacrearvolumenformadejoia.</p>"
}