首页 > php文件操作 > php删除文件程序代码

php删除文件程序代码

在php中要删除文件我们需要使用php提供的unlink()文件删除函数,下面我来给大家详细介绍利用unlink删除文件的方法,有需要的朋友可参考本教程。

unlink(filename,context)

例代码如下:

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

判断文件是否存在,代码如下:

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

批量删除文件,代码如下:

<?php
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<br />n";
                }
            }
        }
        closedir($handle);
    }
}
delDirAndFile('www.phprm.com');
?>

删除目录下文件并指定那些不删除,代码如下:

<?php
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 "您的配置如下<br> 
 要删除的目录为: 
 ";
    if ($path == ".") echo "当前目录";
    else echo $path;
    echo "<br>您要过滤的文件或文件夹有:" . $guolv . "<br> 
 如果确认过滤请<a href='?action=del'>点击此处开始删除相应的目录及目录下的所有文件</a>,如果配置不正确请到文件中修改 
 ";
}
//删除目录及文件
function remove_directory($dir) {
    foreach (glob($dir) as $fn) {
        echo " removing $fn<br>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;
}
?>

               
               

永久地址:http://www.phprm.com/wenjian/fs1413.html

转载随意~请带上教程地址吧^^

标签:php 删除 文件 unlink

相关文章

发表留言