2016-05-19 21 views
1

私はいくつかのディレクトリを削除したいと私はそれらの名前をフォルダと呼ばれる配列に格納する必要があります。例えばPHP、ディレクトリを削除する

foreach ($folders as $f){ 
    rmdir($dir); 
    $dir=rtrim($dir,"/"); 
    $dir=rtrim($dir,$f); 
} 

は:/cdf

dir: /cdf5/gfft/ 
and folders: gftt,cdf5 

私は時々RTRIM関数は、4つの以上の文字をカットし、ディレクトリ内の残りのパスがあることを見ました。

問題が何ですか?

+0

この関数を呼び出すことができます。 –

+0

'$ dir'はどこに定義されていますか? – bg17aw

+0

後続のスラッシュのみを削除したい場合は、サーバーの安価なアクションsubstrを使用してください。 –

答えて

2

この関数は、

function deldirectory($dir){ 

$tfile = new RecursiveDirectoryIterator($dir, RecursiveDirectoryIterator::SKIP_DOTS); 
$files = new RecursiveIteratorIterator($tfile, 
      RecursiveIteratorIterator::CHILD_FIRST); 
foreach($files as $file) { 
    if ($file->isDir()){ 
     rmdir($file->getRealPath()); 
    } else { 
     unlink($file->getRealPath()); 
    } 
} 
return rmdir($dir); 
} 

内のファイルとディレクトリを削除し、あなたは私たちにあなたの `$ folders`配列を共有

foreach ($folders as $f){ 
    deldirectory($f); 
} 
+0

ありがとうございました!私のソリューションがなぜ機能しないのか教えていただけますか? – CCT

+0

ファイルやサブディレクトリが内部にあるため動作しない可能性があります。 rmdirは、空のディレクトリだけを削除します。ディレクトリを削除する前に、まずファイルとサブディレクトリを削除してください。 –

関連する問題