用php忽略隐藏文件

时间:2011-03-29 20:05:22

标签: php arrays opendir

我正在尝试扫描图像文件夹,但是我一直看到mac创建的._文件

我正在使用此代码:

   <?php
if ($handle = opendir('assets/automotive')) {
    $ignore = array( 'cgi-bin', '.', '..','._' );
    while (false !== ($file = readdir($handle))) {
        if ( !in_array($file,$ignore)) {
            echo "$file\n";
        }
    }
    closedir($handle);
}
?>

为什么有任何想法?我创建了一个覆盖它的ignore数组。

更新:仍显示两者。

3 个答案:

答案 0 :(得分:6)

我想你想忽略以<(>)开头的文件,而不只是文件名。

<?php
if ($handle = opendir('assets/automotive')) {
    $ignore = array( 'cgi-bin', '.', '..','._' );
    while (false !== ($file = readdir($handle))) {
        if (!in_array($file,$ignore) and substr($file, 0, 1) != '.') {
            echo "$file\n";
        }
    }
    closedir($handle);
}
?>

答案 1 :(得分:2)

in_array() takes two parameters:您要查找的内容以及要搜索的数组。 你想要:

if ( !in_array($file, $ignore))

答案 2 :(得分:0)

您正在检查in_array,但接下来的问题是:“ in_array”。

in_array需要第二个参数,在本例中为$file,以供查找。你需要:

in_array($file,$ignore);