PHP碎码——删除除指定文件的其他文件及目录
更新:HHH   时间:2023-1-7


<?php

header('content-type:text/html;charset=utf-8');



$path = iconv("utf-8", "gb2312", 'C:/MyServer/www/PHP05/day06/2016/');

delete_dir($path);



/**
参数必须为目录,中文亦可
删除目录下--除指定文件或包涵置顶文件的目录其他目录和文件
*/
function delete_dir($path){

    // 返回一个 array,包含有目录中的文件和目录
    $arr = scandir($path);
    //echo '<pre>';
  // var_dump($arr);
    // 遍历目录下的每个子项(包括文件,目录,. ,..)
    foreach ($arr as $value) {

        // 若名字为.或者..的直接跳过
        if($value == '.' || $value == '..'){
            continue;
        }

        // 当前目录路径与 该目录下子项分别拼接
        $in_path = $path.$value;

        // 判断是文件或者目录
        if (is_dir($in_path)) {

            // 在目录路径尾部追加 /
            $in_path .= '/';

            // 递归
            delete_dir($in_path);

            // 判断该目录是否为空
            if(count(scandir($path)) == 2){
                rmdir($in_path);
            }


        } else {
            
            // 判断文件名是否为指定的名字,若不是,直接删除
            if(basename($in_path) != iconv("UTF-8", "gb2312", "abc - 副本.txt")){

                // 删除文件
                unlink($in_path);

            }


        }

    }



}









?>

代码稍作修改可用于,搜索指定文件,提取指定文件,统计文件等等需要遍历目录的需求


转战PHP,愿我能走的更远


返回web开发教程...