PHPを使用してコンテンツを含むフォルダを削除する必要があります。 rmdir()
とunlink()
は空のフォルダを削除しますが、内容のあるフォルダは削除できません。PHPを使用してコンテンツを含むフォルダを削除する方法
答えて
この関数は(限り、それが書き込み可能だとして)あなたが任意のフォルダを削除することができますし、それがファイルとサブディレクトリです。 RecursiveDirectoryIterator
を使用して
function Delete($path)
{
if (is_dir($path) === true)
{
$files = array_diff(scandir($path), array('.', '..'));
foreach ($files as $file)
{
Delete(realpath($path) . '/' . $file);
}
return rmdir($path);
}
else if (is_file($path) === true)
{
return unlink($path);
}
return false;
}
または再帰なし:
function Delete($path)
{
if (is_dir($path) === true)
{
$files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path), RecursiveIteratorIterator::CHILD_FIRST);
foreach ($files as $file)
{
if (in_array($file->getBasename(), array('.', '..')) !== true)
{
if ($file->isDir() === true)
{
rmdir($file->getPathName());
}
else if (($file->isFile() === true) || ($file->isLink() === true))
{
unlink($file->getPathname());
}
}
}
return rmdir($path);
}
else if ((is_file($path) === true) || (is_link($path) === true))
{
return unlink($path);
}
return false;
}
。私は非常に単純なコマンドを使用していました: <?php system( "rm -r RESOURCE_PATH"); ?>しかし、残念ながら、一部のサーバではシステムコマンドが許可されていないので、あなたのもの(私は最初のものを選んでしまった)は非常に良い単純な代替手段です。ありがとう、兄弟。 –
これは相対パスでも機能しますか?ですから、完全なパスが "/ var/www/html/folder_and_files_to_delete /"であるとします。そして、削除スクリプトは "/var/www/html/delete_folders_and_files.php"に置かれます。 「folder_and_files_to_delete」をパスとして取得できますか? – yoano
ようこそ、最高の答え – mghhgm
フォルダの内容(サブフォルダの内容を含む)をループして最初に削除する必要があります。
例がここにあります:http://lixlpixel.org/recursive_function/php/recursive_directory_delete/
はそれに注意してください!
を行うことができます。たくさんの例の機能がrmdir
マニュアルページのコメントにあります。
単一の機能は、これは、あなたがrmdirを使用して独自に作成し、リンク解除する必要ができるようになるPHPに組み込むませんがあります。
(php.net docsにコメントから取られた)例:
<?
// ensure $dir ends with a slash
function delTree($dir) {
$files = glob($dir . '*', GLOB_MARK);
foreach($files as $file){
if(substr($file, -1) == '/')
delTree($file);
else
unlink($file);
}
rmdir($dir);
}
?>
GLOB_MARKとは何ですか? – Randell
@Randell:GLOB_MARK - 返された各ディレクトリにスラッシュを追加します。 –
ここにあなたが必要なものだけを行いますスクリプトです:
/**
* Recursively delete a directory
*
* @param string $dir Directory name
* @param boolean $deleteRootToo Delete specified top-level directory as well
*/
function unlinkRecursive($dir, $deleteRootToo)
{
if(!$dh = @opendir($dir))
{
return;
}
while (false !== ($obj = readdir($dh)))
{
if($obj == '.' || $obj == '..')
{
continue;
}
if ([email protected]($dir . '/' . $obj))
{
unlinkRecursive($dir.'/'.$obj, true);
}
}
closedir($dh);
if ($deleteRootToo)
{
@rmdir($dir);
}
return;
}
私はphp.netからそれを持って、それが動作。
もっと良い方法はrm
です(Linuxの場合)。
function remove($dir) {
$root = $_SERVER['DOCUMENT_ROOT'].'/tmp/';
if (is_dir($root.$dir)) {
exec('rm -rf '.$root.$dir);
}
}
削除( "/")...すべて幸せになります:) –
Yikes。シェルコマンドは避けるべきです。 – Volomike
ウェブアプリ内のファイルを削除することは避けてください。相対パスを与えることで、アプリケーションユーザーが許可を持っていればシステム内のファイルを削除できます。 – ArunaFromLK
- 1. Firebase Storageのコンテンツを含むフォルダを削除する
- 2. Cを使用してコンテンツを削除した後にフォルダを削除する
- 3. PHPを使用してフォルダからファイルを削除する方法
- 4. PHPスクリプトを使用してフォルダから画像を削除する方法
- 5. linuxコマンドラインを使用してフォルダを削除する方法
- 6. PHPを使用してフォルダからファイルを削除する
- 7. REGEX/PHPを使用してタグとコンテンツを削除します
- 8. PHPの特定のコンテンツを含むタグを削除しますか?
- 9. SAS x "copy ..."にスペースを含むフォルダを使用する方法?
- 10. コード内 - ファイルを含むフォルダを削除する
- 11. ファイルを含むフォルダを削除するノードjs
- 12. Laravelのファイルを含むフォルダを削除する
- 13. 変数を含むフォルダからファイル名を削除する
- 14. 大量のファイルを含むフォルダを削除して、削除するファイルを表示する
- 15. pysftpモジュールを使用して一部のコンテンツを含むディレクトリを削除することはできますか?
- 16. ゴルプのコンテンツを含むフォルダをコピー
- 17. ドロップボックスWebインターフェイスを使用して30,000個のファイルを含むフォルダを削除する
- 18. PHPスクリプト自体を削除する方法(およびdirを含む)
- 19. cmd ftp(Windows Server 2008)でワイルドカードを使用してフォルダを削除する方法
- 20. apacheを使用してxlsxファイルのCellコンテンツを削除する方法
- 21. JavaScriptまたはjQueryを使用してコンテンツを自動削除する方法
- 22. 削除する方法C:\ Users \ ...からスクリプトを使用してフォルダを削除する
- 23. 関数を使ってフォルダを削除する方法は?
- 24. iRODSを使ってフォルダを削除する方法は?
- 25. Phoenixを使用してHBaseのテーブルを含むスキーマを削除する
- 26. Jqueryを使用して0を含む列を削除するには
- 27. バックスラッシュを含む行を削除する方法\
- 28. 特殊文字を含む行を削除する方法は?
- 29. 名前に '$'を含むファイル/ディレクトリを削除する方法
- 30. ファイアベースからテキストを含む写真を削除する方法
@@ Maerlyn::私は8月26日、2009年にあなたが言及した重複したものを、この質問を投稿したことが、この(!
$root
は常に重要なファイルを削除防ぐために、あなたのTMP directory
に設定する必要があります)のようなものを行くだろう2010年7月28日に投稿されました。あなたは今何をすべきかを知っていると信じています。 – Fero