2014-02-06 4 views
1

Я пишу простую рыбную игру на PHP. У меня есть фрагмент кода, который печатает все файлы изображений в каталоге/img, но также выводит .DS_Store. Я хочу исключить этот файл, возможно, используя glob(), но я не знаю, как это сделать. Я искал это в течение нескольких часов без везения.PHP - исключить тип файла при печати каталога img

$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?

+0

Пожалуйста научиться отступ своего кода так, чтобы он читаемый и блоки/раскрой очевидны. –

+0

Поскольку я новичок здесь, не могли бы вы рассказать мне, как правильно отступать мой код? Вкладка не работает. И вместо того, чтобы ниспровергать, возможно, научить новых пользователей, чтобы они могли учиться. – bealstreetmedia

+0

Отступы. Не могли бы вы удалить downvote? – bealstreetmedia

ответ

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"; 
    } 
} 
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"; 
} 
}