работа с папками на php

Автор Тема: работа с папками на php  (Прочитано 2880 раз)

Оффлайн GoldenmanАвтор темы

  • Бизнес оценка: (0)
  • Рекрут
  • *
  • СПАСИБО: 0
  • Сообщений: 16
  • Карма: 2
    • Просмотр профиля

Оффлайн GoldenmanАвтор темы

  • Рекрут
  • *
работа с папками на php
« : 23-11-2010, 22:09:02 »
Как просканировать все папки на сервере и записать пути к файлам, если вложенность папок может быть довольно большой.
Ранее использовался вариант:

$s0=scanfilder($_SERVER['DOCUMENT_ROOT']);
  foreach($s0['folders'] as $s1){
    $s1=scanfolder($s1);
    $FFiles=array_merge($FFiles,$s1['files']);

    foreach($s1['folders'] as $s2){
      $s2=scanfolder($s2);
      $FFiles=array_merge($FFiles,$s2['files']);

      foreach($s2['folders'] as $s3){
        $s3=scanfolder($s3);
        $FFiles=array_merge($FFiles,$s3['files']);
          ..................
          и так далее
          .................
      }
    }
  }

function scanfolder($DIR){
  $return['files']=array();
  $return['folders']=array();
  $DIRc=scandir($DIR);
  foreach($DIRc as $DIRc){
    if($DIRc!='.' and $DIRc!='..'){
      $DIRc=$DIR.'/'.$DIRc;
      if(filetype($DIRc)=='file'){
        $return['files'][]=$DIRc;
      }else{
        $return['folders'][]=$DIRc;
      }
    }
  }
  return $return;
}


Но думаю по коду понятно что это не выход, так как при большой вложенности папок код работать не будет.

Кто нибудь с подобным сталкивался? Как реализовывали?


Оффлайн Рэшад

  • Бизнес оценка: (0)
  • Рекрут
  • *
  • СПАСИБО: 0
  • Сообщений: 17
  • Карма: 1
    • Просмотр профиля

Оффлайн Рэшад

  • Рекрут
  • *
Re: работа с папками на php
« Ответ #1 : 05-12-2010, 20:34:37 »
в таком случае используют рекурсию, тоесть при прохождение по файлам, поставить условие если файл папка, то запускать ещё раз этуже функ-цию только с параметром уже новой папки, думаю дальше разберётесь


 

Похожие темы

  Тема / Автор Ответов Последний ответ
0 Ответов
7457 Просмотров
Последний ответ 01-10-2010, 06:53:07
от staff-base
3 Ответов
2505 Просмотров
Последний ответ 30-11-2010, 11:15:46
от Assortei
17 Ответов
4143 Просмотров
Последний ответ 18-08-2011, 15:58:13
от STRIJ
3 Ответов
3361 Просмотров
Последний ответ 13-01-2011, 14:41:48
от mixa33rus
7 Ответов
3088 Просмотров
Последний ответ 29-08-2012, 18:49:44
от Владимир75