使用PHP删除或取消目录中的文件夹链接
我可以使用PHP使用PHP删除或取消目录中的文件夹链接,php,Php,我可以使用PHPunlink()删除服务器上载文件夹中的文件,但脚本只删除文件,如何包含和删除文件夹 $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
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(上载):中的权限被拒绝
我正在本地主机上自己尝试此代码,并且我的用户帐户是管理员。使用
rmdir
。这将允许您删除PHP中的空目录 您可以创建一个递归删除文件(取消链接)和目录(rmdir)的函数
有一个库可以让您轻松地使用文件系统。它是一个名为
文件系统的Symfony组件。您可以轻松地将其作为独立组件使用。它有remove
方法,可以执行您需要的操作:使用以下使用的函数
RecursiveDirectoryIterator提供了一个接口,用于在文件系统目录上进行递归迭代
就像
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);
检查。你读过了吗:还有一个递归删除所有文件和目录的例子。您的权限被拒绝可能是因为试图删除。
目录。
目录可能重复@Don’t Panic我正在使用最上面的答案代码,但却出现了此错误“RecursiveDirectoryIterator::\uu构造(upload\*,upload\*):权限被拒绝”
即使使用了应该删除文件夹而不是文件的代码,当然,您正在执行此操作的用户帐户可能没有执行此操作所需的权限。当您否决投票时,请尝试在这样做时发表评论您正在帮助我改进我的答案,而不是重复我的错误。如果您的问题已解决,请接受您的答案,并对有用的答案进行表决,这就是它的工作原理。
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);