【问题标题】:Export multiple json files导出多个json文件
【发布时间】:2013-03-12 09:16:09
【问题描述】:

我正在将 wordpress 与 nextgen 画廊一起使用,我想从单独的 JSON 文件中的特定画廊 id 获取图像。到目前为止,我有这个代码,但这只是从给定的 ID 导出图像(在本例中为 7)。我知道一定有某种 foreach 函数,但我的 javascript 知识不会那么远。

有人可以帮我解决这个问题吗?我到目前为止的代码:

mysql_connect("localhost","DB-NAME","DB-PASSWORD");
mysql_select_db("DB-NAME");

$result=mysql_query("SELECT filename FROM zs_ngg_pictures WHERE galleryid = '7' ORDER BY sortorder LIMIT 3");

while($row=mysql_fetch_assoc($result)){
$output[]=$row;
}

$fp = fopen('result.json', 'w');
fwrite($fp, json_encode($output));
fclose($fp);

echo json_encode($output);

【问题讨论】:

    标签: php mysql json foreach


    【解决方案1】:

    如果我正确理解您想要实现的目标,您可以简单地获取所有图片,将它们放入多维数组中:

    $result=mysql_query("SELECT filename, galleryid FROM zs_ngg_pictures ORDER BY sortorder");
    
    while($row=mysql_fetch_assoc($result)){
      $output[$row['galleryid']][] = $row['filename'];
    }
    

    你有一个这样的 PHP 数组(如果你有两个 id 为 7 和 23 的画廊):

    array(
      7 => array('file7-1.jpg','file7-2.jpg','file7-3.jpg'),
      23 => array('file23-1.jpg','file23-2.jpg'),
    );
    

    所以result.json 文件将如下所示:

    { "7"  : ["file7-1.jpg", "file7-2.jpg", "file7-3.jpg"],
      "23" : ["file23-1.jpg", "file23-2.jpg"] }
    

    如果您想为每个 galleryid 分配单独的文件,您可以循环并保存不同名称的文件:

    foreach($output as $gall_id => $gallery) {
      file_put_contents('result-'.$gall_id.'.json', json_encode($gallery));
    }
    

    您将拥有两个名为 result-7.jsonresult-23.json 的文件

    【讨论】:

    • 感谢 Guglie,底部正是我所需要的。我现在为每个 id 获得一个唯一的 json 文件。再次感谢!
    • 我也看了那个答案。没有测试它,但看起来它只输出一个 json 文件......
    • @Koen 是的,这只是为了编写更少更简洁的代码。我已经用file_put_contents 更新了答案
    【解决方案2】:

    而不是做复杂的fopen()echo

    $fp = fopen('result.json', 'w');
    fwrite($fp, json_encode($output));
    fclose($fp);
    
    echo json_encode($output);
    

    您可以简单地调用:

    file_put_contents('result.json', json_encode($output));
    readfile('result.json');
    

    或者您跳过文件并简单地输出 JSON:

    echo json_encode($output));
    

    【讨论】:

      猜你喜欢
      • 2023-02-26
      • 1970-01-01
      • 1970-01-01
      • 2016-02-14
      • 1970-01-01
      • 2021-06-25
      • 2015-12-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多