通过php ftp远程搜索目录

时间:2012-10-31 22:12:46

标签: php ftp

我通过php的ftp connect连接到另一台服务器。

但是我需要能够从它的web根中提取所有html文件,这让我有点头疼......

我发现这篇文章Recursive File Search (PHP)讨论了如何使用RecursiveDirectoryIterator函数,但这是针对与php脚本相同的服务器上的目录。

我已经开始编写自己的函数,但不确定我是否正确...假设发送给该方法的原始路径是服务器的doc根目录:

public function ftp_dir_loop($path){

    $ftpContents = ftp_nlist($this->ftp_connection, $path);

    //loop through the ftpContents
    for($i=0 ; $i < count($ftpContents) ; ++$i)
        {
            $path_parts = pathinfo($ftpContents[$i]);

            if( in_array($path_parts['extension'], $this->accepted_file_types ){

                //call the cms finder on this file
                $this->html_file_paths[] = $path.'/'.$ftpContents[$i];

            } elseif(empty( $path_parts['extension'] )) {

                //run the directory method
                $this->ftp_dir_loop( $path.'/'.$ftpContents[$i] );  
            }
        }
    }   
}

有没有人见过预制班来做这样的事情?

1 个答案:

答案 0 :(得分:1)

你可以尝试

public function ftp_dir_loop($path) {
    $ftpContents = ftp_nlist($this->ftp_connection, $path);
    foreach ( $ftpContents as $file ) {
        if (strpos($file, '.') === false) {
            $this->ftp_dir_loop($this->ftp_connection, $file);
        }
        if (in_array(pathinfo($file, PATHINFO_EXTENSION), $this->accepted_file_types)) {
            $this->html_file_paths[$path][] = substr($file, strlen($path) + 1);
        }
    }
}