欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

php删除文件程序代码

程序员文章站 2024-02-10 19:25:52
...
在php中要删除文件我们需要使用php提供的unlink()文件删除函数,下面我来给大家详细介绍利用unlink删除文件的方法,有需要的朋友可参考本教程。

unlink(filename,context)

代码如下 复制代码

if (unlink($file_delete)) {
echo "The file was deleted successfully.", "n";
} else {
echo "The specified file could not be deleted. Please try again.", "n";
}

判断文件是否存在

代码如下 复制代码

$myfile = "./test1.txt";
if (file_exists($myfile)) {
$result=unlink ($myfile);
echo $result;
}
?>

批量删除文件

代码如下 复制代码

function delFileUnderDir( $dirName="../Smarty/templates/templates_c" )
{
if ( $handle = opendir( "$dirName" ) ) {
while ( false !== ( $item = readdir( $handle ) ) ) {
if ( $item != "." && $item != ".." ) {
if ( is_dir( "$dirName/$item" ) ) {
delFileUnderDir( "$dirName/$item" );
} else {
if( unlink( "$dirName/$item" ) )echo "成功删除文件: $dirName/$item
n";
}
}
}
closedir( $handle );
}
}delDirAndFile( 'www.bKjia.c0m');

删除目录下文件并指定那些不删除

代码如下 复制代码

header("content-Type: text/html; charset=utf-8");
//配置开始
$path=".";//在些设置所删除的目录.为当前目录 如:删除path目录,引号里请添path;
$guolv="del.php,install.php,path";//设置需要过滤的文件或文件夹用英文状态下,号分隔
//配置结束
if($_GET['action']=="del"){
$file= array_values_recursive(recurdir($path,$guolv));
foreach($file as $k => $v){
remove_directory($v);
}
}else{
echo "您的配置如下

要删除的目录为:
";
if($path==".")echo "当前目录";else echo $path;
echo "
您要过滤的文件或文件夹有:".$guolv."

如果确认过滤请点击此处开始删除相应的目录及目录下的所有文件,如果配置不正确请到文件中修改
";
}


//删除目录及文件
function remove_directory($dir) {
foreach(glob($dir) as $fn) {
echo " removing $fn
n";
if (!is_writable($fn))@chmod($fn, 0777);
if(is_dir($fn)){@rmdir($fn);}else{@unlink($fn);}
}
}
//扫描目录
function recurdir($pathname,$guolv='del.php')
{
$result=array();$temp=array();
//检查目录是否有效和可读
if(!is_dir($pathname) || !is_readable($pathname))
return null;
//得到目录下的所有文件夹
$allfiles=scandir($pathname);
foreach($allfiles as $key => $filename)
{
//如果是“.”或者“..”的话则略过
if(in_array($filename,array('.','..')))continue;
if(count($guolv)>0){$lv=explode(",",$guolv);if(in_array($filename,$lv))continue;}

//得到文件完整名字
$fullname =$pathname . "/" .$filename;
//如果该文件是目录的话,递归调用recurdir
$temp[]=$fullname;
if(is_dir($fullname)){
$nowpath=explode("/",$fullname);
if(count($guolv)>0){$lv=explode(",",$guolv);if(in_array($nowpath[count($nowpath)-1],$lv))continue;}
$result[$filename] = recurdir($fullname);}
}
//最后把临时数组中的内容添加到结果数组,确保目录在前,文件在后
foreach($temp as $f){
$result[]=$f;
}
return $result;
}
//获取所有文件
function array_values_recursive($ary)
{
$lst = array();
foreach( array_keys($ary) as $k ){
$v = $ary[$k];
if (is_array($v)) {$lst = array_merge( $lst, array_values_recursive($v));}else{$lst[] = $v;}
}
return $lst;
}
?>