【问题标题】:JSON escaping slashes in a file path, wont display imageJSON在文件路径中转义斜杠,不会显示图像
【发布时间】:2012-11-22 03:42:51
【问题描述】:

我正在使用 PHP 和 for 循环将数据准备到正确的 html 中,并使用 JSON 将数据输出为 appended 并显示在页面上。 JSON 斜线转义导致浏览器无法正确查看 html。

这是我的 PHP for 循环:

$json = '<div id="rsec3" class="rsec">';
for($i=0; $i<count($array); $i++)
{
    $coverart = $array[$i]['cover'];
    if(empty($coverart))
    {
        $coverart = "nocoverart.gif";
    }
    $json .= '<div><img="/video/cover/thumbs/' . $cover . '"></div>';
}
$json .= '</div>';

$json = json_encode(array('ok' => 'ok', 'html' => $json));
echo $json;

这是我的 javascript 解析和附加 json:

$.get('/index_get.php?iid='+this.id,function(data){
    $('#indload').hide();
    js=jQuery.parseJSON(data);
    $('#indr').append(js.html);
});

这就是浏览器显示的内容,一堆无用的行话,它自己附加了一个&lt;/img="&gt;

<img=" video cover thumbs img.png"></img=">

如何防止这种情况发生并正确显示图像?

【问题讨论】:

  • 你能把$array的内容贴出来吗?
  • 如果您使用$.getJSON 而不是$.get 或只需将数据类型添加到$.get,则不需要调用$.parseJSON
  • 重要性数组的唯一值是cover,它输出图像的名称,例如img.pnglolwut.gif
  • 你需要关闭你的字符串中的图片标签

标签: php javascript jquery json escaping


【解决方案1】:

我认为问题可能是 php 代码上的无效 HTML 标记 &lt;img&gt;。在&lt;img&gt; 标签中,src 缺失,&lt;img&gt; 标签未关闭。

更改以下内容

$json .= '<div><img="/video/cover/thumbs/' . $cover . '"></div>'; 

$json .= '<div><img src="/video/cover/thumbs/' . $cover . '" /></div>';

【讨论】:

  • 犯了多么愚蠢的错误,为什么我不应该在深夜编码;)
【解决方案2】:

您需要关闭字符串中的图像标签

$json .= '<div><img="/video/cover/thumbs/' . $cover . '"/></div>';   

【讨论】:

    猜你喜欢
    • 2013-07-11
    • 1970-01-01
    • 1970-01-01
    • 2014-02-04
    • 2013-07-23
    • 2017-03-16
    • 1970-01-01
    • 2013-12-05
    • 1970-01-01
    相关资源
    最近更新 更多