【问题标题】:directoryIterator has wrong "starting point"directoryIterator 的“起点”错误
【发布时间】:2015-01-17 09:04:09
【问题描述】:

我有一个递归目录迭代器,如下所示:

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,当然还有文件夹 uploadImages 本身。

任何想法我错过了什么?

【问题讨论】:

    标签: php iterator directory


    【解决方案1】:

    您的代码有错误,您只需删除此代码行:

    $dir = new DirectoryIterator($path);
    

    说明

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-19
      • 2011-01-10
      • 2012-09-13
      • 2014-03-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多