PHP - 打印img目录时排除文件类型

时间:2014-02-06 15:03:37

标签: php foreach glob file-type scandir

我正在用PHP编写一个简单的钓鱼游戏。我有一段代码打印我/ img目录中的所有图像文件,但它也输出 .DS_Store 。我想排除那个文件,可能使用glob(),但我不知道如何。我用谷歌搜索了几个小时没有运气。

$files = scandir('img');
if ($files !== false) {
    foreach($files as $f) {
        if ($f == '..' || $f == '.') continue;
            echo '<li class="fish_pic"><img src="img/'.$f.'" alt="'.$f.'" title="" class="fish"></li>'."\n";
    }
}

如何排除.DS_Store?

2 个答案:

答案 0 :(得分:2)

只需添加if规则。

if ($f == '..' || $f == '.' || $f == '.DS_Store') continue;

或者,您可以使用数组和in_array()方法。

$filesToSkip = array('.', '..', '.DS_Store', 'other_file_to_skip');

$files = scandir('img');
if ($files !== false) {
 foreach($files as $f) {
   if (in_array($f, $filesToSkip)) continue;
   echo '<li class="fish_pic"><img src="img/'.$f.'" alt="'.$f.'" title="" class="fish">   </li>'."\n";
 }
}

答案 1 :(得分:0)

$files = scandir('img');
if ($files !== false) {
    foreach($files as $f) {
        if ($f == '..' || $f == '.' || substr($f, -strlen(".DS_Store")) === ".DS_Store") continue;
            echo '<li class="fish_pic"><img src="img/'.$f.'" alt="'.$f.'" title="" class="fish"></li>'."\n";
    }
}