-
- /**
- ディレクトリとその下のすべてのファイルを再帰的に削除します
- func: rrmdir
- */
- function rrmdir($dir) {
- if (is_dir($dir)) {
- $objects = scandir($dir);
- foreach ($ $object としてのオブジェクト) {
- if ($object != “.” && $object != “..”) {
- if (filetype($dir.”/”.$object) == “dir”) rrmdir( $dir.”/”.$object); else unlink($dir.”/”.$object);
- }
- }
- reset($objects);
- }
- }
- ?>
コードをコピーします
添付ファイル: rmdir
(PHP4、PHP5)
rmdir — ディレクトリを削除する
バグを報告する
bool rmdir (文字列 $dirname )
dirname で指定されたディレクトリの削除を試みます。 ディレクトリは空である必要があり、適切な権限が必要です。成功した場合は TRUE を返し、失敗した場合は FALSE を返します。
注: PHP 5.0.0 以降、rmdir() は特定の URL ラッピング プロトコルでも使用できます。 rmdir() がどの URL ラッピング プロトコルをサポートしているかを確認するには、サポートされているプロトコルとラッパーのリストを参照してください。
注: Context のサポートは PHP 5.0.0 で追加されました。コンテキストの説明については、「Stream 関数」を参照してください。
注: セーフ モードが有効になっている場合、PHP はスクリプトの実行時に、スクリプト化されているディレクトリの UID (所有者) が実行中のスクリプトと同じかどうかを確認します。
mkdir() と unlink() を参照してください。
-
- function rrmdir($dir) {
- if (is_dir($dir)) {
- $objects = scandir($dir);
- foreach ($objects as $object) {
- if ($object != "." && $object != "..") {
- if (filetype($dir."/".$object) == "dir") rrmdir($dir."/".$ object); else unlink($dir."/".$object);
- }
- }
- reset($objects);
- rmdir($dir);
- }
- }
- ?>
コードをコピー
これは私のコードではありませんが、見つけるのに時間がかかったので共有しようと思いました。これは、フォルダー、すべてのサブフォルダー、およびファイルを一度に削除する機能です。
この関数が実行されるページに関連して、削除したいディレクトリを指定します。次に、フォルダーを空にするだけで、削除しない場合は $empty = true を設定し、$empty = false を設定する場合はそのままにしておきます。削除すると、指定されたディレクトリも削除されます。
-
- function deleteAll($directory, $empty = false) {
- if(substr($directory,-1) == "/") {
- $directory = substr($directory, 0,-1);
- }
- if(!file_exists($directory) || !is_dir($directory)) {
- return false;
- } elseif(!is_readable($directory)) {
- return false;
- } else {
- $directoryHandle = opendir($directory);
- while ($contents = readdir($directoryHandle)) {
- if($contents != '.' && $contents != '..') {
- $path = $ディレクトリ . "/" . $contents;
- if(is_dir($path)) {
- deleteAll($path);
- } else {
- unlink($path);
- }
- }
- }
- closedir($directoryHandle);
- if($empty == false) {
- if(!rmdir($directory)) {
- return false;
- }
- }
- return true;
- }
- }
- ?>
-
コードをコピー
削除権限が設定されていることを確認するために、前のスクリプトにパッチを適用します。
-
- //フォルダーの削除関数
- function deleteDirectory($dir) {
- if (!file_exists($dir)) return true;
- if (!is_dir($dir) || is_link( $dir)) return unlink($dir);
- foreach (scandir($dir) as $item) {
- if ($item == '.' || $item == '..') continue;
- if ( !deleteDirectory($dir . "/" . $item)) {
- chmod($dir . "/" . $item, 0777);
- if (!deleteDirectory($dir . "/" . $item)) return false ;
- };
- }
- return rmdir($dir);
- }
- ?>
コードをコピー
詳細については、http://cn.php.net/rmdir を参照してください。
>>>>
|