php 如何生成二级目录json,使用PHP根据已解码的JSON创建文件夹/文件结构
例如,我下面有一个build.json文件.包含我在JSON中创建的基本文件夹/文件结构.
{
"folders": [
{
"name": "folder-a",
"files": [
{
"name": "file-a.html"
},
{
"name": "file-b.html"
}
],
"folders": [
{
"name": "sub-folder-a",
"files": [
{
"name": "sub-file-a.html"
},
{
"name": "sub-file-b.html"
}
]
}
]
},
{
"name": "folder-b",
"files": [
{
"name": "file-a.html"
},
{
"name": "file-b.html"
}
]
}
]
}
现在,我在下面创建了简单的PHP代码,可以遍历数组的第一部分.然后,当然,如果我继续在第一个foreach中进行foreach循环,则可以继续遍历数组.问题是我不知道阵列中将有多少个文件夹/文件.关于如何不知道循环多少就可以继续循环的任何想法?谢谢!
$json = file_get_contents('build.json');
$decode = json_decode($json);
foreach($decode as $key => $val){
foreach($val as $valKey => $data){
var_dump($data);
}
}
解决方法:
这是一个使用递归的工作脚本:
$json = file_get_contents('build.json');
$folders = json_decode($json);
function buildDirs($folders, $path = null){
$path = $path == null ? "" : $path . "/";
foreach($folders as $key => $val){
mkdir($path.$val->name);
echo "Folder: " . $path . $val->name . "
";
if(!empty($val->files)){
foreach($val->files as $file){
//Create the files inside the current folder $val->name
echo "File: " . $path . $val->name . "/" . $file->name . "
";
file_put_contents($path . $val->name . "/". $file->name, "your data");
}
}
if(!empty($val->folders)){ //If there are any sub folders, call buildDirs again!
buildDirs($val->folders, $path . $val->name);
}
}
}
buildDirs($folders->folders); //Will build from current directory, otherwise send the path without trailing slash /var/www/here
记住要对根文件夹设置正确的权限.
标签:loops,arrays,json,php,recursion
来源: https://codeday.me/bug/20191027/1947620.html
php 如何生成二级目录json,使用PHP根据已解码的JSON创建文件夹/文件结构相关推荐
- Jquery实现自动生成二级目录
在博客园开通博客以后,就看到某位博友写的js自动生成目录的文章,当时觉得生成目录能给阅读带来方便,所以就直接拿来使用了.用了一段时间以后,发现只能生成一级目录,不能生成多级目录,有点美中不足.所以想着 ...
- php怎么生成一个文件夹里,php创建文件夹目录的教程
php 中可以使用 mkdir() 函数创建文件夹,但 mkdir() 创建文件夹时需要注意的事项有很多,下面就来详细的说一下. php创建文件夹的方法 示例1: php 在创建文件夹时,需要先使用 ...
- C++:从json文件中读取参数/创建文件夹/位拼接
目录 1.从json文件中读取参数 2.创建文件夹 3.位运算拼接 1.从json文件中读取参数 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,和xml ...
- ftp服务器目录创建文件夹权限设置,ftp服务器 创建文件夹权限设置
ftp服务器 创建文件夹权限设置 内容精选 换一换 文件系统创建完成后,用户需在客户端挂载文件共享,在本地共享目录和CSG的文件共享建立映射,通过操作本地的目录实现对CSG共享目录的操作,实现数据实时 ...
- android 阻止文件生成方法,禁止软件创建文件夹 禁止创建文件夹
安卓 怎么阻止软件在文件夹中创建文件 首先说明,Android软件之所以会在文件夹中创建文件,大多数是为了做软件缓存,防止反复的从服务器读取数据,照成用户流量浪费,如果强制的阻止可能会让软件报错. 一 ...
- mac 在 home 目录下创建文件夹
1.修改auto_master 编译 /etc/auto_master 文件,注释掉或者移除以 /home 开头的那一行,保存. sudo vim /etc/auto_master 注释掉 /home ...
- ubuntu下无法在目录下创建文件夹,权限不足解决办法
ubuntu下无法在目录下创建文件夹,权限不足解决办法 Ubuntu linux系统下 su:出现: authentication failure的解决办法 ubuntu下 sudo passwd r ...
- (转)Inno Setup入门(六)——在程序目录下创建文件夹
本文转载自:http://blog.csdn.net/yushanddddfenghailin/article/details/17250789 创建文件夹可以使用[dirs]段实现,代码如下: [s ...
- java自用代码(包括:新建单线程、创建文件夹及文件、map转为json并将json写入txt、文件剪切或改名)...
// 单向光闸写入文件线程new Thread(new Runnable() {// 将map转为jsonJSONObject obdjson = new JSONObject(data);@Over ...
最新文章
- file类打印目录---树状结构,递归
- 系统调研450篇文献,微软亚洲研究院推出超详尽语音合成综述
- gitee插件在androidstudio使用踩坑
- 霍金的遗愿清单:离开地球,警惕人工智能
- linux work queue
- 年会聚会派对邀请海报素材模板,创意和心意缺一不可
- 一个具自我复制功能的程序
- 基金业绩的python分析_DFQ2018绩效归因与基金投资分析工具.pdf
- CSS3参考手册(所有属性)
- C语言方差和标准差公式,方差概念及计算公式.docx
- 华为网络计算机登陆,华为路由器如何登录192.168.3.1入口设置界面
- 《数学之美》--吴军
- vs项目筛选器显示错乱、只显示部分文件
- 华为数通笔记-AAA
- xctf攻防世界 MISC高手进阶区 Ditf
- 【软考】系统集成项目管理工程师(十二)项目沟通管理
- 微信移动端招聘项目总结
- 三线表里加小短线_APA格式报告.doc
- Win7/Win8/8.1最方便安装方法:使用Nt6 HDD installer从主硬盘引导安装
- 借用smtp.qq.com发邮件
热门文章
- C++中之a[5](栈区)和int a=new int[5](堆区)有什么区别
- 《看聊天记录都学不会C语言?太菜了吧》(11)2分钟领悟数组
- 掌握Python爬虫基础,仅需1小时!
- linux+4.4+android,Ubuntu 14.04 x64配置Android 4.4 kitkat编译环境的方法
- oracle执行命令显示2,Oracle数据库执行脚本常用命令小结
- c语言浮点型常量表示平均数_小白基础知识必备|| 整型常量与进制间的转换
- flask取mysql数据很慢_[flask 优化] 由flask-bootstrap,flask-moment引起的访问速度慢的原因及解决办法...
- 楼层效果_1一28高楼最好最吉利的楼层是哪层?选楼层要注意什么?
- ros发布节点信息python_vscode开发ROS1(13)-python实现话题通信(msg)
- ofdm解调算法_OFDM系统中固定频偏算法