SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 社員募集 ...

【php】 ftp_rmdirしたいディレクトリ内にあるファイルを再帰的に削除する方法

php の ftp_rmdir はディレクトリが空っぽでないと、ディレクトリを削除できない。

再帰的にディレクトリ内のファイルを削除して、ディレクトリを削除する書き方はこんな感じ。

function ftp_rmdir_all($con, $dir)
{
	if (ftp_chdir($con,$dir)) {
		$file_list = ftp_rawlist($con, $dir);
		if ($file_list != false) {
			foreach($file_list as $file) {
				$type = substr($file, 0, 1);
				$_arr = explode(' ', $file);
				$tmp_dir = $_arr[count($_arr) - 1];
				if($type == 'd') {
					if($tmp_dir != '.' && $tmp_dir != '..'){
						//再帰呼び出し
						ftp_rmdir_all($con, $dir . '/' . $tmp_dir);
					}
				}else{
					ftp_delete($con, $dir . '/' . $tmp_dir);
				}
			}
		}
	}
	//空にしてからフォルダを削除する
	ftp_rmdir($con, $dir);
}

関連するメモ

コメント