[英]php scan_it to exclude directories starting with an underscore
我有以下代碼,它掃描指定的目錄中的jpgs:
<?php
$scan_it = new RecursiveDirectoryIterator("images/" . $this->item->extraFields->PropertYID->value . "");
foreach(new RecursiveIteratorIterator($scan_it) as $file) {
if (strtolower(substr($file, -4)) == ".jpg" &&
strtolower(substr($file, -4)) == ".jpg") {
echo '<div><img src="'.$file .'" alt="" />'."</div>";
}
}
?>
我只想在此掃描中排除任何名稱以下划線(_)開頭的文件夾。
澄清目錄結構是否如下:
/images/interior/
/images/exterior/
/images/_room1/
/images/room2/
/images/room3/
將包括除_room1之外的所有目錄。
提前謝謝了!
您可以在文件夾名稱中搜索“_”
$directory = "images/' . $this->item->extraFields->PropertYID->value '";
$files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory), RecursiveIteratorIterator::CHILD_FIRST);
foreach($files as $name => $file){
if(is_dir($file)){ //Edited
$pos = strpos($file, '_');
}
if($pos === false){
if (strtolower(substr($file, -4)) == ".jpg" &&
strtolower(substr($file, -4)) == ".jpg") {
echo '<div><img src="'.$file .'" alt="" />'."</div>";
}
}
}
如果你想刪除只有第一個字符為'_'的目錄,如果它在中間,那就ok了,那么你可以這樣做
$files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory), RecursiveIteratorIterator::CHILD_FIRST);
foreach($files as $name => $file){
if(is_dir($file)){
$pos = strpos($file, '_');
}
if(($pos === false) || $pos>0){
if (strtolower(substr($file, -4)) == ".jpg" &&
strtolower(substr($file, -4)) == ".jpg") {
echo '<div><img src="'.$file .'" alt="" />'."</div>";
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.