0

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

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

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

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

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] );  
            }
        }
    }   
}

有没有人看过预制的课程来做这样的事情?

4

1 回答 1

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);
        }
    }
}
于 2012-10-31T22:19:01.973 回答