2013-05-05 3 views
0

. Ниже приведенный ниже код отлично подходит для перечисления всех каталогов и исключая те, которые мне не нужны в списке массивов, но я хотел бы добавить еще одну функцию, чтобы иметь возможность ТОЛЬКО каталогов списков, которые содержат определенные файлы.перечислены только каталоги, содержащие определенные файлы.

Например: только список каталогов, содержащих файлы: array ('file1.php', 'file2.php');

$exclude = array('admin','inc');   
foreach(glob('./*', GLOB_ONLYDIR) as $dir) { 
$dir = str_replace('./', '', $dir); 
if (!in_array($dir, $exclude)) 
{ 
    //list directories 
} } 
+0

Вы говорите, что вы не в состоянии следить за своими файлами? – adeneo

+0

Нет, я не говорю этого, я хочу перечислить каталоги, содержащие конкретные файлы. – ibiz

+0

Используйте цикл, вызывающий 'file_exits()', где аргумент представляет собой конкатенацию '$ dir' и каждого элемента массива файлов. – Barmar

ответ

0
$exclude = array('admin','inc'); 
$required = array('file1.php', 'file2.php'); 
foreach(glob('./*', GLOB_ONLYDIR) as $dir) { 
$dir = str_replace('./', '', $dir); 
if (!in_array($dir, $exclude)) 
{ 
    foreach($required as $r) { 
     if (file_exists("$dir/$r")) { 
      echo $dir, "\n"; 
      break; 
     } 
    } 
} } 
+0

Отлично работает, спасибо ... Но пришлось добавить отсутствующий) в конце: if (file_exists ("$ dir/$ r")) – ibiz

Смежные вопросы