检查文件名是否像php中的字符串一样用于显示图像

时间:2014-06-11 10:55:43

标签: php image

我试图从php的文件夹中获取所有图像。它工作正常。现在我想检查某个图像是否存在,如果存在,则不要显示它。

这是我的基本代码,工作正常:

  foreach (glob("Bilder/Spectrum/*.png") as $filename) {
  $filenameDienst = explode("_", $filename);
  echo "<a href='Dienste?d=".$filenameDienst[1]."#tabs-2'> <img class='loopimage' src='".$filename."'> </a>";
  }

现在我想检查图像名称&#34; MB_default_Spectrum.png&#34;如果它存在则不显示它。

我试过这个:

 foreach (glob("Bilder/Spectrum/*.png") as $filename) {
 $filenameDienst = explode("_", $filename);
 if ($filename != "MB_default_Spectrum.png") {
echo "<a href='Dienste?d=".$filenameDienst[1]."#tabs-2'> <img class='loopimage' src='".$filename."'> </a>";
}
 }

但它不起作用..它仍在显示。这有什么不对?感谢

1 个答案:

答案 0 :(得分:4)

glob返回与给定模式匹配的路径数组,而不仅仅是文件名。查看您的代码,条件应为:

if ($filename != "Bilder/Spectrum/MB_default_Spectrum.png")

另外,我个人更喜欢以下代码(我觉得它更干净):

$results = glob('path/to/dir/*.png');
foreach ($results as $filename) 
    // Skip specific file
    if ($filename === 'path/to/dir/secretNuclearLaunchCodesAsImage.png')
        continue;
    echo $filename
}