PHPで意外に使いそうなのに用意されていない関数があります。
その1つに、ディレクトリの削除があります。
ディレクトリを削除するには、rmdir関数を使いますが、
知っている限り(PHP5.3.0時点)、ディレクトリの中にファイル等がある場合には削除できません。
Linuxの場合には、
system(“rm -rf $path”);
でも削除できますが、Windowsでは当然動かなく、delコマンドに変える必要があります。
そこで、PHPの関数で実装してみると、以下のようになりました。
<?php /** * 再帰的にディレクトリを削除する。 * @param string $dir ディレクトリ名(フルパス) */ function removeDir( $dir ) { $cnt = 0; $handle = opendir($dir); if (!$handle) { return ; } while (false !== ($item = readdir($handle))) { if ($item === "." || $item === "..") { continue; } $path = $dir . DIRECTORY_SEPARATOR . $item; if (is_dir($path)) { // 再帰的に削除 $cnt = $cnt + removeDir($path); } else { // ファイルを削除 unlink($path); } } closedir($handle); // ディレクトリを削除 if (!rmdir($dir)) { return ; } } ?>
The following two tabs change content below.
taira
Sofrware Engineer.
最新記事 by taira (全て見る)
- 翻訳リソースファイル(.po)をXLIFF形式(.xlf)に変換する - 2014年6月27日
- 一杯のラーメン - 2014年6月26日
- Macで翻訳ファイル*.poをmo形式に変換する - 2014年6月4日
Comments are closed.