PHP 删除目录下的文件
发布网友
发布时间:2022-04-06 01:51
我来回答
共4个回答
热心网友
时间:2022-04-06 03:20
PHP删除指定目录下的文件示例:
<?php
//定义删除文件函数
function deleteFile($dirName) {
// 判断是否为有效句柄
if ($handle = opendir( $dirName )) {
// 循环打开的句柄条目(打开成功,则返回文件名;打开失败,则返回false)
while ( false !== ($item = readdir ($handle))) {
if ($item != "." && $item != "..") {
// 判断是否为目录
if (is_dir($dirName . "/" . $item )) {
// 递归删除
deleteFile($dirName . "/" . $item);
} else {
if (unlink($dirName . "/" . $item)) {
echo "成功删除{$dirName}文件夹下的{$item}文件<br/>";
}
}
}
}
// 关闭打开的句柄
closedir( $handle );
}
}
//测试【testFile目录下有NewFile.html】
deleteFile("testFile");
//成功删除testFile文件夹下的NewFile.html文件
?>
热心网友
时间:2022-04-06 04:38
<?php
function del_dir($dir){//删除目录
if($dir=='' || !count($dir)){
return;
}
if(is_array($dir)){
foreach($dir as $d){
@chmod($d, 0777);
del_dir($d);
}
}else{
if(!($mydir=@dir($dir))){
return;
}
while($file=$mydir->read()){
if(is_dir("$dir$file") && $file!='.' && $file!='..'){
@chmod("$dir$file", 0777);
del_dir("$dir$file");
}elseif(is_file("$dir/$file")){
$file_time=@stat($file);//读取文件的最后更新时间
if(time()-$file_time>3600*24*14){//只删除14天以前的文件
@chmod("$dir/$file", 0777);
@unlink("$dir/$file");
}
}
}
$mydir->close();
@chmod($dir, 0777);
@rmdir($dir);
}
}
//test 1:
$dir=$_SERVER['DOCUMENT_ROOT']."/cache/";
del_dir($dir);
$dir=$_SERVER['DOCUMENT_ROOT']."/cache22/";
del_dir($dir);
//test 2:
$dir[0]=$_SERVER['DOCUMENT_ROOT']."/cache/";
$dir[1]=$_SERVER['DOCUMENT_ROOT']."/cache22/";
del_dir($dir);
?>
不知道是不是这个意思,没咋明白你的要求追问我只想删除目录下的文件。。但保留目录!!!
你是整个文件夹都删除了!
追答哎,小改一下不就完了??
read()){
if(is_dir("$dir$file") && $file!='.' && $file!='..'){
@chmod("$dir$file", 0777);
del_dir("$dir$file",1);
}elseif(is_file("$dir/$file")){
$file_time=@stat($file);//读取文件的最后更新时间
if(time()-$file_time>3600*24*14){//只删除14天以前的文件
@chmod("$dir/$file", 0777);
@unlink("$dir/$file");
}
}
}
$mydir->close();
@chmod($dir, 0777);
$levl && @rmdir($dir);
}
}
//test 1:
$dir=$_SERVER['DOCUMENT_ROOT']."/cache/";
del_dir($dir);
$dir=$_SERVER['DOCUMENT_ROOT']."/cache22/";
del_dir($dir);
//test 2:
$dir[0]=$_SERVER['DOCUMENT_ROOT']."/cache/";
$dir[1]=$_SERVER['DOCUMENT_ROOT']."/cache22/";
del_dir($dir);
?>
热心网友
时间:2022-04-06 06:13
删除文件可以使用unlink,没有必要将目录转换成绝对路径,如果想删除images中的文件,可以直接unlink("/image/文件名")即可~!
热心网友
时间:2022-04-06 08:04
<? del_dir(目录)?>可多次使用