PHPプログラムに関する各種メモ書き

PHPでファイルやディレクトリの入ったディレクトリごと削除する

	/**
	 * 中にファイルやディレクトリが入っているディレクトリごと削除する
	 * @param   string      $dir	削除するディレクトリ
	 * @param   boolean     $is_delete_myself	指定したディレクトリ自身を削除するか
	 * @return  string     削除したファイルやリストの結果
	 */
	function remove_directory( $dir, $is_delete_myself=false )
	{
		$result_message = "";
		if ( ! is_dir($dir) ){
			return "ディレクトリ ({$dir}) は存在しません\n";
		}
		else{
			$dir = preg_replace("{/$}","",$dir);
		}

		if ($handle = opendir("$dir")) {
			while (false !== ($item = readdir($handle))) {
				if ($item != "." && $item != "..") {
					if (is_dir("$dir/$item")) {
						$r = remove_directory("$dir/$item", true);
						$result_message .= $r;
					} else {
						unlink("$dir/$item");
						$result_message .= " remove [fie] $dir/$item\n";
					}
				}
			}
			closedir($handle);
			if ( $is_delete_myself == true ){
                rmdir($dir);
                $result_message .= " remove [directory] $dir\n";
            }
		}
		return $result_message;
	}

削除を実行する(指定したディレクトリ自身も削除する)

$r = remove_directory("./my_dir/", true);
echo $r;

結果例

 remove [fie] ./my_dir/b00009vxzx_1.jpg
 remove [fie] ./my_dir/b01lxs5b8x_1.jpg
 remove [fie] ./my_dir/b01lxs5b8x_2.jpg
 remove [fie] ./my_dir/b01lxs5b8x_3.jpg
 remove [directory] ./my_dir

引用元 : https://goo.gl/Z7MFkC

関連エントリー

No.1258
06/26 15:43

edit

ファイル