使用PHP根据已解码的JSON创建文件夹/文件结构
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用PHP根据已解码的JSON创建文件夹/文件结构,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1559字,纯文字阅读大概需要3分钟。
内容图文
例如,我下面有一个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 . "<br>";
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 . "<br>";
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
记住要对根文件夹设置正确的权限.
内容总结
以上是互联网集市为您收集整理的使用PHP根据已解码的JSON创建文件夹/文件结构全部内容,希望文章能够帮你解决使用PHP根据已解码的JSON创建文件夹/文件结构所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。
来源:【匿名】