directoryIterator 有错误 "starting point"
directoryIterator has wrong "starting point"
我有一个递归目录迭代器,如下所示:
function ReadFolderDirectory($dir,$listDir= array())
{
$listDir = array();
if($handler = opendir($dir))
{
while (($sub = readdir($handler)) !== FALSE)
{
if ($sub != "." && $sub != ".." && $sub != "Thumb.db")
{
if(is_file($dir."/".$sub))
{
$listDir[] = $sub;
}elseif(is_dir($dir."/".$sub))
{
$listDir[$sub] = ReadFolderDirectory($dir."/".$sub);
}
}
}
closedir($handler);
}
return $listDir;
}
我是这样用的
$path = dirname(__FILE__);
$path = $path.'/uploadedImages/';
$dir = new DirectoryIterator($path);
$filesArray = ReadFolderDirectory($dir);
echo json_encode($filesArray);
现在,当我尝试设置目录迭代的起点时,如您所见,我已将 /uploadedImages/ 添加到路径中,但它似乎忽略了这一点。
无论是否存在,它总是从 php 文件所在的同一目录开始,因此也包括 index.php、._index、php ,当然还有文件夹 uploadedImages 本身的列表。
想知道我遗漏了什么吗?
您的代码中有错误,您只需删除此代码行:
$dir = new DirectoryIterator($path);
说明
opendir(String $pathToDir) // expects a String, but you pass an Object as a parameter
我有一个递归目录迭代器,如下所示:
function ReadFolderDirectory($dir,$listDir= array())
{
$listDir = array();
if($handler = opendir($dir))
{
while (($sub = readdir($handler)) !== FALSE)
{
if ($sub != "." && $sub != ".." && $sub != "Thumb.db")
{
if(is_file($dir."/".$sub))
{
$listDir[] = $sub;
}elseif(is_dir($dir."/".$sub))
{
$listDir[$sub] = ReadFolderDirectory($dir."/".$sub);
}
}
}
closedir($handler);
}
return $listDir;
}
我是这样用的
$path = dirname(__FILE__);
$path = $path.'/uploadedImages/';
$dir = new DirectoryIterator($path);
$filesArray = ReadFolderDirectory($dir);
echo json_encode($filesArray);
现在,当我尝试设置目录迭代的起点时,如您所见,我已将 /uploadedImages/ 添加到路径中,但它似乎忽略了这一点。
无论是否存在,它总是从 php 文件所在的同一目录开始,因此也包括 index.php、._index、php ,当然还有文件夹 uploadedImages 本身的列表。
想知道我遗漏了什么吗?
您的代码中有错误,您只需删除此代码行:
$dir = new DirectoryIterator($path);
说明
opendir(String $pathToDir) // expects a String, but you pass an Object as a parameter