directory — PHP: Получить имя каталогов, которые не содержат файл «input…»?

Пожалуйста, дайте мне решение для получения имени каталогов, которое не содержит файл «input…», используя php. Моя структура папок выглядит так:

Main Dir
namedirectory.php
Dir1
File1
input_1.txt
File
Dir2
File5
File6
Dir3
File1
input_2.txt
Dir4
File1
File2
Dir5
File1
File2

Поскольку Dir1 и Dir3 имеют файлы «input ..», поэтому он получит name = dir2, dir4, dir5. У меня есть код, но он не работает. Пожалуйста, помогите мне исправить это!

<?php
$dir ='/directory';
while($dirs = glob($dir . '/*', GLOB_ONLYDIR)) {
$dir .= '/*';
if(!$d) {
$d=$dirs;
} else {
$d=array_merge($d,$dirs);
}

foreach ($d as $d) {

if ($handle = opendir($d)) {
while ($entry = readdir($handle)) {
if (strpos($entry, "input") === FALSE) {
echo $d;
break;
}
}
closedir($handle);
}
}

}
?>

1

Решение

Используйте tripple =, потому что PHP будет разыгрывать false до 0, который будет правдой.

Изменить:

if (strpos($entry, "input") == FALSE) {

В

if (strpos($entry, "input") === FALSE) {

РЕДАКТИРОВАТЬ

$dir ='/directory';
while($dirs = glob($dir . '/*', GLOB_ONLYDIR)) {
$dir .= '/*';
if(!$d) {
$d=$dirs;
} else {
$d=array_merge($d,$dirs);
}

foreach ($d as $d) {

if ($handle = opendir($d)) {
$showDirectory = true;
while ($entry = readdir($handle)) {
if (strpos($entry, "input") !== FALSE) {
$showDirectory = false;
break;
}
}
if($showDirectory)
{
echo $d;
}
closedir($handle);
}
}

}
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector