Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: glob()
Форумы портала PHP.SU » » Работа с файловой системой и файлами » glob()

Страниц (1): [1]
 

1. kilogram - 31 Мая, 2012 - 12:06:31 - перейти к сообщению
Как возратить этой функцией расширения чисто *.jpg и *.txt?
Вот например возвратить список всех файлов то вот так:
, как чисто все jpg и txt?
2. EuGen - 31 Мая, 2012 - 12:12:26 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $rgResult=array_merge(glob('/path/to/directory/*.jpg'),glob('/path/to/directory/*.txt'));
  2. //var_dump($rgResult);

?
3. kilogram - 31 Мая, 2012 - 12:21:15 - перейти к сообщению
Решил попробовать возвратить все файлы и файлы во внутренних каталогах, что-то не сработало, возвратило только фапы, а файлы во внутренних каталогах не возвратило.
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. foreach(glob("*") as $r){
  4. if(is_dir($r)) {foreach($r as $r2) echo implode(' ',glob("*")); }
  5. else echo '<b>'.$r.'</b>';
  6. }
  7. ?>
  8.  
4. EuGen - 31 Мая, 2012 - 12:28:32 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $rDir = new RecursiveIteratorIterator(new RecursiveDirectoryIterator('/path/to/directory'));
  2. $rReg = new RegexIterator($rDir, '/^.+\.php$/i', RecursiveRegexIterator::GET_MATCH);
  3. foreach($rReg as $mItem)
  4. {
  5.    echo($mItem);
  6. }

?
5. Мелкий - 31 Мая, 2012 - 12:29:51 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $results=glob("{path/*.txt,path/*.jpg}",GLOB_BRACE);
  2.  echo '<pre>',print_r($results,true),'</pre>';

Без проверки, подсмотрено в коментах: http://nl.php.net/manual/en/function.glob.php

Но это тоже для определённой директории только, не рекурсивно.
6. kilogram - 31 Мая, 2012 - 12:47:03 - перейти к сообщению
Вот так вроде сработало.
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $items = glob('*');
  3.  
  4.     for ($i = 0; $i < count($items); $i++) {
  5.         if (is_dir($items[$i])) {
  6.             $add = glob($items[$i] . '/*');
  7.             $items = array_merge($items, $add);
  8.         }
  9.     }
  10. foreach($items as $rez)
  11.    echo $rez.'<br />';
  12. ?>
  13.  

 

Powered by ExBB FM 1.0 RC1