如果这个问题对忍者来说很明显,我很抱歉,但我是 PHP 的新手,我整天都在努力解决这个问题..
我正在尝试从文件夹结构中获取所有文件的列表。
目前它给了我类似的东西
Array([0]->path/filename [1]->path/filename) Array([0]->path/filename [1]->path/filename..)
(每个文件夹一个)
function o99_list_all_files_in_dir($dir) //need to ocheck for server compatibility (unix,linux,win)
{
$root = scandir($dir);
foreach($root as $value)
{
if($value === '.' || $value === '..') {continue;}
if(is_file("$dir/$value")) {$result[]="$dir/$value";continue;}
//if(is_file("$dir/$value")) {$result["$dir"]="$value";continue;}
foreach(k99_list_all_files_in_dir("$dir/$value") as $value)
{
$result[]=$value;
//$result["$dir"]=$value;
}
}
//print_r($result);
return $result;
}
几个问题:
1 - 我需要路径和文件名对,所以我想得到一个像这样的数组:
结果([路径] -> [文件名] [另一个路径] -> [另一个文件名])。
但是如果我尝试构建另一个数组(切换取消注释和注释行),该函数将只给我每个目录中的第一个文件。
2 - 后来,我使用这个函数来分隔路径和文件名,所以我尝试了这个:
$result = o99_list_all_files_in_dir($upload_dir);
foreach ($result as $image) {
reset($image);
while (list($key, $val) = each($image)) {
// echo "$key => $val\n";
}
$filename = pathinfo($image);// I need the path here ...
...
...但显然它不起作用(否则我不会在这里:-)
3 - 额外问题:如何从结果中过滤文件(例如 thumbs.db)或决定如何忽略或不忽略某些扩展?
编辑 I 4 - !important (之前忘记了) - 在处理未知的服务器路径(Linux、Win、Unix)时我需要注意什么......这个功能是否适用于所有?