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 :: Версия для печати :: Сканирование с помощью DirectoryIterator
Форумы портала PHP.SU » » Работа с файловой системой и файлами » Сканирование с помощью DirectoryIterator

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

1. shum0531 - 23 Августа, 2013 - 21:59:57 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. foreach (new DirectoryIterator($name) as $file) {
  2.         if($file->isDot()) continue;
  3.         $data[] = $file->getFilename();
  4. }

дело в том что на выходе получаю массив а алфавитном порядке, не зависимо от того, директория это или файл.
Как получить в алфавитном порядке директории затем файлы, одним перебором. Это вообще реально с итератором?
2. LIME - 23 Августа, 2013 - 23:12:43 - перейти к сообщению
в конструкторе нет этого и вообще не нашел
смотри glob
там есть сортировка
3. shum0531 - 24 Августа, 2013 - 08:02:16 - перейти к сообщению
Ну лан. Будем работать с костылями )))))
PHP:
скопировать код в буфер обмена
  1. foreach (new DirectoryIterator($name) as $file) {
  2.         if($file->isDot()) continue;
  3.         if($file->isDir()) {
  4.                 $temp['dir'][] = $file->getFilename();
  5.         } else {
  6.                 $temp['file'][] = $file->getFilename();
  7.         }
  8. }
  9. return array_merge($temp['dir'], $temp['file']);


closed
4. LIME - 24 Августа, 2013 - 11:25:26 - перейти к сообщению
вообще не понимаю зачем нужен итератор для простого чтения папки
5. armancho7777777 - 24 Августа, 2013 - 12:16:19 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2. $rgRes = glob($name . '*');
  3.  
  4.         array_filter($rgRes, 'is_dir'),
  5.         array_filter($rgRes, 'is_file')
  6. );
  7.  

 

Powered by ExBB FM 1.0 RC1