用fclose()关闭opendir资源

时间:2014-03-04 11:22:17

标签: php

来自php脚本的警告

E_WARNING:fclose():6不是有效的流资源

if($handle = opendir($dir)){
//do stuff
if(is_resource($handle)){
    fclose($handle);
  }
}

搜索这个在php中给出了一些较旧的bug报告,其中主要关注的是closedir()接受资源,但似乎fclose()应该接受从opendir返回的资源。

我无法在php中找到关于资源类型的任何一般最佳实践,以及如何正确关闭它们。

这个警告的后果是什么?我是否有内存泄漏或类似内容?

1 个答案:

答案 0 :(得分:0)

根据Docs,您希望用closedir($dh);关闭目录,

像这样:

<?php
$dir = "/etc/php5/";

if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        while (($file = readdir($dh)) !== false) {
            echo "filename: $file : filetype: " . filetype($dir . $file) . "\n";
        }
        closedir($dh);
    }
}
?>