ftp_nlist为非空目录返回一个空数组

时间:2017-12-15 10:06:37

标签: php recursion ftp

大家好,我有一个递归函数,可以获取ftp目录和文件,但我无法获取某些文件夹的内容,例如测试文件夹 /public_html/test/myfiles.html我不知道测试内的内容,否则该功能正常。

这是我的代码:

function ftpRecursiveFileListing($ftpConnection, $path, $parentId = null) {
static $cnt = 0;
$files = array();
$contents = ftp_nlist($ftpConnection, $path);

    foreach($contents as $currentFile) {
        $currentFileArray = array();
                $filesize = ftp_size($ftpConnection, $currentFile);
        $currentFileArray["text"] = $currentFile;
        $currentFileArray["parent_id"] = $parentId;
        $currentFileArray["id"] = $cnt++;
                $currentFileArray["filesize"] = NULL;
                if($filesize >= 0)
                    $currentFileArray["filesize"] = $filesize; // octets
        // assuming its a folder if there's no dot in the name
        if (strpos($currentFile, '.') === false)
            $currentFileArray["children"] = $this->ftpRecursiveFileListing($ftpConnection, $currentFile, $currentFileArray["id"]);
        $files [] = $currentFileArray;
    }
        return array_reverse($files) ;
    }

2 个答案:

答案 0 :(得分:0)

尝试打开此帖子上的被动模式 ftp_nlist command not working

ftp_pasv($ftp_conn, true);
$files_list = ftp_nlist($ftp_conn, ".");

答案 1 :(得分:0)

如果tmp文件夹中没有剩余空间,则ftp_nlist返回空数组