DirectoryIterator имеет неправильную «начальную точку»

У меня есть рекурсивный итератор каталогов, который выглядит так:

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 и, конечно же, список самой загруженной папки.

Есть мысли, что мне не хватает?

0

Решение

В вашем коде есть ошибка, вы просто должны удалить эту строку кода:

$dir = new DirectoryIterator($path);

объяснение

opendir(String $pathToDir) // expects a String, but you pass an Object as a parameter
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]