【发布时间】:2019-04-08 11:48:24
【问题描述】:
我正在尝试过滤掉这个数组中的一些文件夹:
Array
(
[2] => 20151113_152308.jpg
[3] => 20160524_173033.jpg
[4] => 20160810_100405.jpg
[5] => 20160816_142932.jpg
[6] => 20160817_135507.jpg
[7] => 20170203_145901.jpg
[8] => 20170203_151235.jpg
[9] => Afbeelding-ifone-131.jpg
[10] => Afbeelding-ifone-508.jpg
[11] => Bestratingswerkzaamheden
[12] => Mvc-161.jpg
[13] => Rioleringswerkzaamheden
[14] => SANY0016.jpg
[15] => SANY0036.jpg
[16] => SANY0060.jpg
[17] => SANY0132.jpg
[18] => SANY0133.jpg
[19] => SANY0158.jpg
[20] => SANY0159.jpg
[21] => SANY0361.jpg
[22] => Zeefwerkzaamheden
)
如您所见,数组中有文件,但也有一些文件夹(无扩展名)。我尝试使用is_dir() 过滤掉它们。
使用以下代码:
<?PHP
//Base path
$pad = "/home/studione/public_html/_extern/website/cms/images/beeldbank/".$alias."";
//Get everything from above path
$directories = array_diff(scandir($pad), array('.', '..', 'index.html'));
// Print array of above
echo '<pre>';
print_r($directories);
echo '</pre>';
foreach($directories as $image){
if(!is_dir($image){
$impressieslider .= '
<div class="col-md-3">
<a class="impressiegallerij" href="cms/images/beeldbank/'.$alias.'/'.$image.'">
'.$directory.'
<img src="cms/images/beeldbank/'.$alias.'/'.$image.'" class="d-block img-fluid gallerypageimg" alt="">
</a>
</div>';
}
}
echo impressieslider;
?>
但我仍然在我的页面上看到文件夹,为什么?每当数组到达文件夹时,我也尝试在循环内回显一个字符串,但我什么也没看到。我做错了什么?
【问题讨论】:
-
“但我仍然在我的页面上看到文件夹,为什么?” - 因为您当时忽略了文件路径?
-
也许:
if(!is_dir($image)){ -
从哪里获得 '.$directory.' 的价值?
-
if(is_dir($pad.'/'.$image) == false) 尝试运行这个条件
标签: php arrays function directory