搜索具有特定名称的txt文件,然后使用PHP删除它们?

时间:2016-02-02 19:21:14

标签: php html recursion directory unlink

使用php中的unlink功能可以搜索具有多个文件夹的目录,以查找具有特定名称的txt文件。就我而言Newsfeed.txt

我应该从哪里开始?

2 个答案:

答案 0 :(得分:1)

您可以使用php标准库(SPL)的递归目录迭代器。

function deleteFileRecursive($path, $filename) {
  $dirIterator = new RecursiveDirectoryIterator($path);
  $iterator = new RecursiveIteratorIterator(
    $dirIterator,
    RecursiveIteratorIterator::SELF_FIRST
  );

  foreach ($iterator as $file) {
    if(basename($file) == $filename) unlink($file);
  }
}

deleteFileRecursive('/path/to/delete/from/', 'Newsfeed.txt');

这将允许您从给定文件夹和所有子文件夹中删除名称为Newsfeed.txt的所有文件。

答案 1 :(得分:1)

很棒的答案maxhb。这是一些更多的手册。

<?php

function unlink_newsfeed($checkThisPath) {
    $undesiredFileName = 'Newsfeed.txt';

    foreach(scandir($checkThisPath) as $path) {
        if (preg_match('/^(\.|\.\.)$/', $path)) {
            continue;
        }

        if (is_dir("$checkThisPath/$path")) {
            unlink_newsfeed("$checkThisPath/$path");
        } else if (preg_match( "/$undesiredFileName$/", $path)) {
            unlink("$checkThisPath/$path");
        }
    }
}

unlink_newsfeed(__DIR__);