我通过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] );
}
}
}
}
有没有人见过预制班来做这样的事情?
答案 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);
}
}
}