You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP:将目录文件数组转为带URL键的关联数组并输出JSON

问题:修改PHP脚本生成带完整URL的JSON数组

我有一段PHP脚本,用于返回指定目录下的图片(或文件),当前最终输出为仅包含文件名的JSON数组。

现有代码:

<?php

$files = array();

$dir = opendir('/folderpath');
while ($file = readdir($dir)) {
    if ($file == '.' || $file == '..') {
        continue;
    }

    $files[] = $file;
}

header('Content-type: application/json');
echo json_encode($files);

当前输出的JSON:

["1.png","2.jpg","4.jpg","3.png"]

需求:为每个图片拼接完整URL,将每个元素转为以"url"为键、完整URL为值的关联数组,最终得到如下格式的JSON输出:

[
 {"url":"https://s3-us-west-2.amazonaws.com/appsdeveloperblog.com/images/cats/cat-1.png"},
 {"url":"https://s3-us-west-2.amazonaws.com/appsdeveloperblog.com/images/cats/cat-2.jpg"},
 {"url":"https://s3-us-west-2.amazonaws.com/appsdeveloperblog.com/images/cats/cat-3.jpg"},
 {"url":"https://s3-us-west-2.amazonaws.com/appsdeveloperblog.com/images/cats/cat-4.jpg"},
 {"url":"https://s3-us-west-2.amazonaws.com/appsdeveloperblog.com/images/cats/cat-5.jpg"},
 {"url":"https://s3-us-west-2.amazonaws.com/appsdeveloperblog.com/images/cats/cat-6.jpg"}
]

解决方案

修改后的代码如下:

<?php

$files = array();
// 定义URL前缀,根据实际场景调整
$baseUrl = 'https://s3-us-west-2.amazonaws.com/appsdeveloperblog.com/images/cats/';

$dir = opendir('/folderpath');
while ($file = readdir($dir)) {
    if ($file == '.' || $file == '..') {
        continue;
    }

    // 组装带url键的关联数组
    $files[] = [
        'url' => $baseUrl . $file
    ];
}

header('Content-type: application/json');
// JSON_PRETTY_PRINT可选,用于格式化输出提升可读性
echo json_encode($files, JSON_PRETTY_PRINT);

关键改动说明:

  • 新增$baseUrl变量统一管理URL前缀,后续调整路径只需修改此处
  • 将原本直接存入文件名的逻辑,改为生成包含url键的关联数组,值为前缀与文件名拼接后的完整URL
  • 可选启用JSON_PRETTY_PRINT参数,让输出的JSON自动换行格式化,便于查看

内容的提问来源于stack exchange,提问作者winfred adrah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 19:47:33