如何在PHP中删除文件

时间:2018-09-09 09:17:27

标签: php file unlink

我想删除PHP中特定目录中的文件。我该如何实现? 我有以下代码,但它不会删除文件。

$files = array();
$dir = dir('files');
while ($file = $dir->read()) {
    if ($file != '.' && $file != '..') {
        $files[] = $file;
    }
    unlink($file);
} 

2 个答案:

答案 0 :(得分:2)

我认为您的问题不是特定的,此代码必须清除目录“ 文件”中的所有文件。

但是我认为该代码中存在一些错误,这是正确的代码:

        $files= array();
        $dir = dir('files');
        while (($file = $dir->read()) !== false) { // You must supply a condition to avoid infinite looping
           if ($file != '.' && $file != '..') {
              $files[] = $file; // In this array you push the valid files in the provided directory, which are not (. , ..) 
           }
           unlink('files/'.$file); // This must remove the file in the queue 
        } 

最后确保您提供了dir()的正确路径。

答案 1 :(得分:0)

您可以使用glob获取所有目录内容,并在取消链接之前使用is_file()检查该值是否是文件。

$files = glob('files/*'); // get directory contents
foreach ($files as $file) { // iterate files      
   // Check if file
   if (is_file($file)) {
      unlink($file); // delete file
   }
}

如果要删除与.png或.jpg等格式匹配的文件,则必须使用

$files = glob('/tmp/*.{png,jpg}', GLOB_BRACE);

请参见手册glob