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 に答える