php - 如何使用 txt 文件的文件列表作为数组变量?
问题描述
基本上我的问题是,我需要将一些 .json 文件合并为一个。值得庆幸的是,该代码已经完成并且运行良好。我的问题是,现在我需要能够轻松设置需要合并的文件,而无需每次都手动重写代码。
上传json文件时,我的服务器会自动将文件名添加到txt文件中。为了方便使用,都在同一个目录中。
假设我在一个目录中有 3 个 json 文件,1.json、2.json 和 3.json。
它将在该目录中自动填充一个名为“items.txt”的文件,其中所有 .json 文件名采用以下格式。
'1.json','2.json','3.json'
这是我的php代码,主要关注“$urls = array($items);” 部分:
$array = explode("\n", file_get_contents('items.txt'));
$items = implode($array);
$urls = array($items);
$jobs = [];
foreach ($urls as $url){
$json = json_decode(file_get_contents($url), true);
array_push($jobs, $json);
}
$unique = array();
foreach ($jobs as $piece) {
$unique = array_merge($unique, $piece);
}
$retour = json_encode($unique);
print_r($retour);
不幸的是,这返回 null。但是,如果我手动将其更改为:
$urls = array( '1.json','2.json','3.json');
它按预期工作。
如果我执行“print_r($items);”,这是输出 :
'1.json','2.json','3.json'
所以我知道变量设置正确。我怎样才能输出这个变量并将其用作上面的 url 变量?
如果这很难理解,我很抱歉,如果需要,我很乐意提供更多拘留。我希望这是一项简单的任务,我非常感谢您的帮助!
解决方案
由于您当前的文件内容是带有'
引号的 CSV,因此您可以使用str_getcsv()
$urls = str_getcsv(file_get_contents('items.txt'), ",", "'");
或者,您可以始终将文件列表存储为 JSON,以与您使用 JSON 文件的事实保持一致。所以文件将是
[ "1.json", "2.json", "3.json" ]
和
$urls = json_decode(file_get_contents("a.json"), true));
推荐阅读
- node.js - ModuleBuildError:模块构建失败:TypeError [ERR_INVALID_ARG_TYPE]:“路径”参数必须是字符串类型。接收类型未定义
- python - 为列表 Python 上的奇数加 1
- xcode - 将 macOS 更新到 Catalina 后,无法在 Xcode 中构建 React Native 项目
- mongodb - MongoDB:仅项目特定类型的字段
- symfony - 使用多个插件在 Ext:news 中朗读 url
- pic - MPLAB X IDE v5.40“链接错误:无法分配程序内存”如何更正此问题?
- excel - 查找具有多个类别的 MIN 时间戳
- angular - 运行 Angular9 和量角器 e2e 测试速度非常慢
- php - 如何在 Laravel on Store 上使用 exclude_if
- ansible - 在ansible中使用Jinja2模板创建Json文件