PHPを使用してフォルダーの下のサブフォルダーを削除する方法
PHP 開発者の場合、フォルダーの下にあるフォルダーを削除する必要が生じる場合があります。 PHP にはファイルやフォルダーを削除するための組み込み関数が提供されていますが、フォルダーを個別に削除するための機能は提供されていません。今回はPHPを使ってフォルダー配下のサブフォルダーを削除する方法を紹介します。
フォルダーの下のサブフォルダーを削除することは、特に古くて役に立たないファイルをクリーンアップする必要がある場合に、比較的一般的な操作です。 PHP では、rmdir()
関数を使用してフォルダーを削除できます。この関数は、フォルダーへのパスをパラメーターとして受け取り、そのフォルダーの削除を試みます。ただし、削除できるのは空のフォルダーのみで、空でないフォルダーは削除できません。
PHP で空ではないフォルダーを削除する操作は比較的複雑です。フォルダーを正常に削除するには、まずフォルダー内のすべてのファイルとサブフォルダーを削除し、エラーが発生しないことを確認する必要があるためです。幸いなことに、PHP には recursiveDirectoryDelete()
という関数が用意されており、フォルダー内のすべてのファイルとサブフォルダーを簡単に削除できます。その実装プロセスは次のとおりです:
function recursiveDirectoryDelete($directory){ if(!is_dir($directory)){ throw new InvalidArgumentException(sprintf('%s is not a directory', $directory)); } $files = new RecursiveIteratorIterator( new RecursiveDirectoryIterator($directory, RecursiveDirectoryIterator::SKIP_DOTS), RecursiveIteratorIterator::CHILD_FIRST ); foreach($files as $file) { if ($file->isDir()){ rmdir($file->getRealPath()); } else { unlink($file->getRealPath()); } } rmdir($directory); return true; }
上記のコードでは、まず、渡されたパラメータがディレクトリであるかどうかを確認します。ディレクトリではない場合、InvalidArgument 例外がスローされます。
次に、RecursiveDirectoryIterator
クラスと RecursiveIteratorIterator
クラスを使用して、ディレクトリ内のすべてのサブディレクトリとファイルを反復処理します。ここでは、無限ループを避けるために .
および ..
ディレクトリをスキップする SKIP_DOTS
定数も渡します。
次に、現在のファイルまたはディレクトリのタイプを確認し、rmdir()
または unlink()
関数を使用してそれ自体を削除します。最後に、rmdir()
関数を使用してフォルダーを削除します。
上記のコードでは、recursiveDirectoryDelete()
関数を呼び出して、フォルダーの下にあるすべてのファイルとサブフォルダーを削除できます。
しかし、フォルダーの下のサブフォルダーを削除する方法というニーズをまだ実現していません。
PHP では、フォルダーの下のサブフォルダーを削除する必要がある場合、まず recursiveDirectoryDelete()
関数を呼び出してサブフォルダーを削除し、次にその親フォルダーを削除します。
function deleteSubdirectory($parentDirectory, $subDirectory) { $subDirectoryPath = sprintf('%s/%s', $parentDirectory, $subDirectory); if (is_dir($subDirectoryPath)) { recursiveDirectoryDelete($subDirectoryPath); return true; } throw new InvalidArgumentException(sprintf('%s is not a directory under %s', $subDirectory, $parentDirectory)); }
上記のコードでは、最初にサブフォルダーのフル パスを構築し、それがディレクトリであるかどうかを確認します。存在する場合は、recursiveDirectoryDelete()
関数を呼び出して削除します。それ以外の場合は、例外がスローされます。
これで、フォルダーの下のサブフォルダーを削除する方法が完了しました。上記 2 つの関数を組み合わせると、この関数を PHP で簡単に実装できます。完全な例を次に示します。
function recursiveDirectoryDelete($directory){ if(!is_dir($directory)){ throw new InvalidArgumentException(sprintf('%s is not a directory', $directory)); } $files = new RecursiveIteratorIterator( new RecursiveDirectoryIterator($directory, RecursiveDirectoryIterator::SKIP_DOTS), RecursiveIteratorIterator::CHILD_FIRST ); foreach($files as $file) { if ($file->isDir()){ rmdir($file->getRealPath()); } else { unlink($file->getRealPath()); } } rmdir($directory); return true; } function deleteSubdirectory($parentDirectory, $subDirectory) { $subDirectoryPath = sprintf('%s/%s', $parentDirectory, $subDirectory); if (is_dir($subDirectoryPath)) { recursiveDirectoryDelete($subDirectoryPath); return true; } throw new InvalidArgumentException(sprintf('%s is not a directory under %s', $subDirectory, $parentDirectory)); } $parentDirectory = '/path/to/directory'; $subDirectory = 'subdirectory'; deleteSubdirectory($parentDirectory, $subDirectory);
上の例では、最初に 2 つの関数 recursiveDirectoryDelete()
と deleteSubdirectory()
を定義してから を呼び出します。 deleteSubdirectory()
指定されたサブフォルダーを削除する関数。 $parentDirectory
と $subDirectory
を独自のパスとサブフォルダー名に置き換えるだけです。
概要:
フォルダーの下のサブフォルダーの削除は、PHP では比較的一般的な操作です。 recursiveDirectoryDelete()
関数を呼び出すことですべてのファイルとサブフォルダーを削除でき、指定したサブフォルダーを削除するには deleteSubdirectory()
関数を使用します。この記事があなたのお役に立てば幸いです。
以上がPHPを使用してフォルダーの下のサブフォルダーを削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、
