数组中的PHP目录和文件信息
因此存在用户目录空间。每个用户都有自己的空间,可以上传.gif、jpg、png和mp4文件 用户可以在任意多个目录或子目录中创建和管理自己的文件 我不知道如何做我需要为我的最终结果,所以我没有示例代码。我需要的最终结果如下:数组中的PHP目录和文件信息,php,Php,因此存在用户目录空间。每个用户都有自己的空间,可以上传.gif、jpg、png和mp4文件 用户可以在任意多个目录或子目录中创建和管理自己的文件 我不知道如何做我需要为我的最终结果,所以我没有示例代码。我需要的最终结果如下: foreach ($file AS $file) { $data[] = array('type' => 'image', 'path' => $file["path"], 'name' => $file[name],
foreach ($file AS $file) {
$data[] = array('type' => 'image',
'path' => $file["path"],
'name' => $file[name],
'time' => $file["update_time"]);
}
我如何确切地从目录中获得详细信息?记住,我不知道在基本目录之后结构会是什么样子
此外,我需要排除所有以开头的目录和文件。(例如.htaccess,但还有其他的)给你。Usa递归函数对每个目录进行迭代。如果是目录,则执行递归,否则获取并存储数据:
$directoryToScan = './';
$results = [];
$tree = getDirEnties($directoryToScan, $results);
var_dump($tree);
function getDirEnties($directory, &$results) {
$entries = scandir($directory);
foreach ($entries as $item) {
if (!in_array($item, ['.', '..']) && substr($item, 0, 1) !== '.') {
$path = $directory . '/' . $item;
if (is_dir($path)) {
getDirEnties($path, $results);
} else {
$pathInfo = pathinfo($path);
$name = $pathInfo['filename'];
$type = 'unknown';
if (!empty($pathInfo['extension'])) {
$name .= "." . $pathInfo['extension'];
switch (strtolower($pathInfo['extension'])) {
case "gif":
case "jpg":
case "png":
case "jpeg":
case "bmp":
//etc..
$type = 'image';
break;
case "mp4":
$type = 'media';
break;
}
}
$data = [
'name' => $name,
'path' => $pathInfo['dirname'],
'type' => $type,
'time' => filemtime($path)
];
$results[] = $data;
}
}
}
return $results;
}
以递归方式对调用
glob()
得到的条目进行迭代。这还允许过滤,例如忽略名称以点(
)开头的文件。您需要创建一个递归函数,对所有条目进行处理。你的朋友将是scandir
,是_dir
,在_array中
glob看起来是个不错的选择。事实上,有人在php页面上几乎拥有了我所需要的代码,这使得它变得更好。