1

我正在用 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?

4

2 回答 2

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";
 }
}
于 2014-02-06T15:05:42.917 回答
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";
    }
}
于 2014-02-06T15:08:33.697 回答