2017-03-04 6 views
-1

写真をメインフォルダにアップロードしてサブフォルダにコピーするPHPスクリプトがあります。私はまた、写真を削除するPHPスクリプトがあります。問題は、写真がサブフォルダではなくメインフォルダからのみ削除されることです。これは私が思いついたコードですが、何も起こりません。何かご意見は?フォルダとサブフォルダからファイルを削除する

$deletefile = $galleriesfolder.$folder.$dir.$image; 
    $deletefile1 = $galleriesfolder.$folder.$dir."/thumbs/".$image; 
    unlink($deletefile); 
    if (!is_file($deletefile)): 
     die("no file"); 
    endif; 
    unlink($deletefile1); 
    if (!is_file($deletefile1)): 
     die("no file"); 

    endif; 

答えて

0

は、再帰的に

/** 
* Deletes a directory and all files and folders under it 
* @return Null 
* @param $dir String Directory Path 
*/ 
function rmdir_files($dir) { 
$dh = opendir($dir); 
if ($dh) { 
    while($file = readdir($dh)) { 
    if (!in_array($file, array('.', '..'))) { 
    if (is_file($dir.$file)) { 
    unlink($dir.$file); 
    } 
    else if (is_dir($dir.$file)) { 
    rmdir_files($dir.$file); 
    } 
    } 
    } 
    rmdir($dir); 
} 
} 

これはかなり厄介な機能であるディレクトリ内のすべてのサブフォルダとファイルを削除します。
慎重に取り扱ってください。削除しないディレクトリは削除しないでください。ディレクトリ全体とその中のすべてのファイルを削除しようとします。
ディレクトリハンドルが読み込みに成功したことを確認することとは別にエラーチェックを行いません。

0

このコードは、ディレクトリ内のすべてのサブフォルダとファイルを再帰的に削除します。

$dir = "/"; 
 
$di = new RecursiveDirectoryIterator($dir, FilesystemIterator::SKIP_DOTS); 
 
$ri = new RecursiveIteratorIterator($di, `enter code here`RecursiveIteratorIterator::CHILD_FIRST); 
 
foreach ($ri as $file) 
 
{ 
 
     $file->isDir() ? rmdir($file) : unlink($file); 
 
}

関連する問題