[英]Delete or Unlink folders inside a directory using PHP
我可以使用PHP unlink()
刪除服務器上的上載文件夾中的文件,請參見以下代碼,但是腳本僅刪除文件,如何包括和刪除文件夾?
$files = glob('upload/*'); // get all file names
foreach($files as $file){ // iterate files
if(is_file($file))
unlink($file); // delete file
}
我找到了此代碼,但它給了我一個拒絕權限的錯誤。
array_map('unlink', glob("upload/*"));
並在下面使用此代碼
function deleteFiles($directory) {
$recursive = new RecursiveDirectoryIterator($directory, RecursiveDirectoryIterator::SKIP_DOTS);
$files = new RecursiveIteratorIterator($recursive, RecursiveIteratorIterator::CHILD_FIRST);
foreach ($files as $file) {
if ($file->isDir()) {
rmdir($file->getRealPath());
} else {
unlink($file->getRealPath());
}
}
rmdir($directory);
}
deleteFiles('upload');
但是顯示權限被拒絕錯誤
警告:rmdir(upload):權限被拒絕
我正在自己的本地主機上嘗試此代碼,我的用戶帳戶是管理員。
使用rmdir
。 文檔這將允許您刪除PHP中的空目錄。
您可以創建一個函數來遞歸刪除文件(取消鏈接)和目錄(rmdir)。
有一個庫可讓您輕松使用文件系統。 這是一個名為Filesystem
的Symfony組件。 您可以輕松地將其用作獨立組件。 它具有可以執行您需要的操作的remove
方法: http : //symfony.com/doc/current/components/filesystem.html#remove
使用以下使用RecursiveDirectoryIterator的函數
RecursiveDirectoryIterator提供了一個用於在文件系統目錄上進行遞歸迭代的接口。
function deleteFiles($directory) {
$recursive = new RecursiveDirectoryIterator($directory, RecursiveDirectoryIterator::SKIP_DOTS);
$files = new RecursiveIteratorIterator($recursive, RecursiveIteratorIterator::CHILD_FIRST);
foreach ($files as $file) {
if ($file->isDir()) {
rmdir($file->getRealPath());
} else {
unlink($file->getRealPath());
}
}
rmdir($directory);
}
像這樣稱呼它
deleteFiles('uploads');
好的,所以在修改函數deleteFiles()
我需要使用以下代碼將目錄設置為0777
chmod($directory,0777);
然后刪除后,我需要使用mkdir
重新制作目錄,下面是修改后的代碼。
function deleteFiles($directory) {
chmod($directory,0777);
$recursive = new RecursiveDirectoryIterator($directory, RecursiveDirectoryIterator::SKIP_DOTS);
$files = new RecursiveIteratorIterator($recursive, RecursiveIteratorIterator::CHILD_FIRST);
foreach ($files as $file) {
if ($file->isDir()) {
rmdir($file->getRealPath());
} else {
unlink($file->getRealPath());
}
}
rmdir($directory);
}
deleteFiles('upload');
mkdir("upload", 0700);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.