删除php中目录中的一些文件

时间:2016-12-14 05:17:14

标签: php regex file delete-file

我有一个脚本需要删除一些以某种模式开头的文件。

我尝试了unlink,但不知何故不起作用,是否有任何遗漏。

$files = glob(PATH_DIR.
    '_*.txt');
foreach($files as $file) { // iterate files
    if (is_file($file)) {
        //unlink($file); // delete file
        $mask = $var.
        '_*.*';
        array_map('unlink', glob($mask));
    }
}

2 个答案:

答案 0 :(得分:1)

@array_map('unlink', glob(PATH_DIR.'_*.txt'));

_-如果不打印所有路径,然后尝试手动触发取消链接

答案 1 :(得分:0)

使用RecursiveIteratorIterator获取文件,并检查您是否有足够的权限删除这些文件。 chown该文件夹或更改755和文件644

的权限
find . -type d -exec chmod 0755 {} $path;
find . -type f -exec chmod 0644 {} $path;

如果你在linux上,这些命令将有助于递归设置权限

$file_obj =  get_files_by_path('/var/www/html/wordpress')

foreach ($file_obj as $Ofiles) {
    $file_path = $Ofiles->getPathname();
    //use your regex here with $file path. if that passed then delete the file  

    unlink($file_path);
}

function get_files_obj_by_path($path){   
            $obj =  new RecursiveIteratorIterator(
                  new RecursiveDirectoryIterator($source), RecursiveIteratorIterator::SELF_FIRST, RecursiveIteratorIterator::CATCH_GET_CHILD
                );   
            return $obj;
        }