在php中删除文件夹
我正在尝试删除文件夹: 函数删除($path) { if(is_dir($path)==true) { $files=array_diff(scandir($path),array('.','..); foreach($files作为$file) { 删除(realpath($path)。'/.$file); } 返回rmdir($path); } else if(is_file($path)==true) { 返回取消链接($path); } 返回false; } 删除(“tmp”);在php中删除文件夹,php,Php,我正在尝试删除文件夹: 函数删除($path) { if(is_dir($path)==true) { $files=array_diff(scandir($path),array('.','..); foreach($files作为$file) { 删除(realpath($path)。'/.$file); } 返回rmdir($path); } else if(is_file($path)==true) { 返回取消链接($path); } 返回false; } 删除(“tmp”); 它可以
它可以在我的Xampp服务器上工作,但不能在我的Web服务器上工作。我已将文件夹及其包含的文件的权限更改为0777。所以它应该是可写的(或者在本例中是可擦除的),但什么也不会发生。我甚至尝试将文件夹的绝对路径作为函数的参数,但仍然没有。有什么想法吗?它是否返回false?或者它返回true,但实际上不删除 通常我只是猜测这是一个权限问题 尝试使用PHP中的mkdir创建一个文件夹,使PHP成为所有者(可以这么说),并尝试使用函数删除该文件夹 如果有效,则是权限/所有者问题。使用此选项:
function delTree($dir)
{
$files = glob( $dir . '*', GLOB_MARK );
foreach( $files as $file
{
if( is_dir( $file ) )
delTree( $file );
else
@unlink( $file );
}
if( is_dir($dir) ) rmdir( $dir );
};
你可以试试这个代码
<?php
$files = glob('application/*'); foreach($files as $file){ if(is_file($file)) unlink($file); }
?>
可能有些文件是用php打开的,比如fopen,此时它不会删除文件夹或目录。当我试图删除一个文件/文件夹时,我也遇到了同样的问题
<?php
function delete_directory($target) {
if (is_dir($target))
$dir_handle = opendir($target);
if (!$dir_handle)
return false;
while($file = readdir($dir_handle)) {
if ($file != "." && $file != "..") {
if (!is_dir($dirname."/".$file))
unlink($dirname."/".$file);
else
delete_directory($target.'/'.$file);
}
}
closedir($dir_handle);
rmdir($target);
return true;
}
?>
希望这有帮助。尝试这行代码删除一个或多个文件夹文件 我希望这对你有帮助
function deleteAll($str) {
if (is_file($str)) {
return unlink($str);
}
elseif (is_dir($str)) {
$scan = glob(rtrim($str,'/').'/*');
foreach($scan as $index=>$path) {
$this->deleteAll($path);
}
return @rmdir($str);
}
}
有错误信息吗?您应该会得到一些。尝试在顶部添加
ini\u集('display\u errors',1);错误报告(E_全部)代码>并查看是否有任何错误决定显示。否。还是没什么。只是一些我期待的通知信息。我试过这样做:if(mkdir(“tmp”,0777))echo('works');else-echo('nope');如果(删除('tmp'))回音('yes');else echo(‘否’);但什么也没发生。它没有生成文件夹。它没有显示任何内容。你确定你的主机允许这些功能吗?是的,我只是尝试创建一个新的php文件,并使用新的php文件创建一个文件夹。成功了。有趣的是,尽管我使用了mkdir(“tmp”,0777),但它创建了一个带有0755任务的tmp文件夹,这是默认的。我是否使用了错误的mkdir函数?权限值是否应该用引号括起来?
<?php
function delete_directory($target) {
if (is_dir($target))
$dir_handle = opendir($target);
if (!$dir_handle)
return false;
while($file = readdir($dir_handle)) {
if ($file != "." && $file != "..") {
if (!is_dir($dirname."/".$file))
unlink($dirname."/".$file);
else
delete_directory($target.'/'.$file);
}
}
closedir($dir_handle);
rmdir($target);
return true;
}
?>
function deleteAll($str) {
if (is_file($str)) {
return unlink($str);
}
elseif (is_dir($str)) {
$scan = glob(rtrim($str,'/').'/*');
foreach($scan as $index=>$path) {
$this->deleteAll($path);
}
return @rmdir($str);
}
}