PHP: (içeriği de dahil olmak üzere) bir klasörü silmek için basit yolu

4 Cevap php

Klasörü herhangi bir dosya içeriyorsa rmdir() işlev başarısız olur. Ben böyle bir şey ile dizindeki tüm dosyaları aracılığıyla döngü yapabilirsiniz:

foreach (scandir($dir) as $item) {
    if ($item == '.' || $item == '..') continue;
    unlink($dir.DIRECTORY_SEPARATOR.$item);
}
rmdir($dir);

Sadece tek seferde silmek için herhangi bir yolu var mı?

4 Cevap

Eh, her zaman var

system('/bin/rm -rf ' . escapeshellarg($dir));

nerede kullanılabilir.

rrmdir() - tüm dosyaları ve dizinleri silin:

function rrmdir($dir) { 
  foreach(glob($dir . '/*') as $file) { 
    if(is_dir($file)) rrmdir($file); else unlink($file); 
  } rmdir($dir); 
}

, this kaynağı olarak başına

Eğer bir dizin temizlemek veya silmek istiyorsanız ve pencerelerde iseniz, biraz zaman kazanın.

Bu kullanın:

    chdir ($file_system_path);
    exec ("del *.* /s /q");

You can use other DEL syntax, or any other shell util. You may have to allow the service to interact with the desktop, as that's my current setting and I'm not changing it to test this.

Başka bir alternatif bir yöntem bulabiliriz here.

Bu deneyin:

exec('rm -rf '.$user_dir);