Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][AJAX] Rekurencyjne skanowanie folderow i podfolderow
Forum PHP.pl > Forum > Przedszkole
lupos
Hey.
Chcialem przeskanowac foldery i podfoldery uzywajac lightbox2.04
Poniżej kod do skanowania samych folderow.
Jak i gdzie dopisac by rekurencyjnie wywołać skanowanie podlfolderów
CODE


function createLbFromDir ($linkname, $galname, $directory, $thumbdirectory, $extensions = array ('jpg', 'jpeg')) {
$gallery = "";
$dh = opendir ($directory);
while ($file = readdir ($dh)) {
$parts = explode(".", basename ($file));
$extension = $parts[count($parts)-1];
if (!is_dir ($directory . $file) && ($file != ".." && $file != ".") && in_array($extension, $extensions)) {
$gallery.= "";
}
}
return $gallery;
}
?>



moze jakas pętelka w wyowłaniu samego kodu:
CODE
<?php echo createLbFromDir ("Linkname", "galleryname", "imagefolder/" , "thumbfolder/"); ?>

Bardzo prosze o pomoc i ewentualną modyfikację skrptu
golaod
Możesz mi swoją rekurencyjność wyjaśnić bo ja chyba ślepy jestem. Rekurencyjnie to jak raz wywołasz funkcje która przeczyta cały folder, odsieje foldery a pliki, i ze znalezionych folderów znowu SAMA siebie wywoła.
lupos
Cytat(golaod @ 15.09.2008, 14:31:56 ) *
Możesz mi swoją rekurencyjność wyjaśnić bo ja chyba ślepy jestem. Rekurencyjnie to jak raz wywołasz funkcje która przeczyta cały folder, odsieje foldery a pliki, i ze znalezionych folderów znowu SAMA siebie wywoła.


Nie będę tu przytaczał definicji rekurencyjności ale tak moj kod oczywiscie jej nie zawiera. Czyta same katalogi które zdefiniujemy. A chciałbym gdy znajdzie folder ponownie przeskanowć podfoldery.
A może sama ktoś zna metodę zwracającą same foldery z podfolderami?
golaod
Odświeżam bo nikt nie napisał, a ja sam nie miałem czasu wcześniej. (Poza tym komuś się może jednak przydać)
  1. <?php
  2. $dir;
  3. function listowanie($dir)
  4. {
  5.    if($uchwyt = opendir($_GET['dir']))
  6.    {
  7.        while(false !== ($file = readdir($uchwyt)))
  8.        {
  9.            if(is_dir($dir.$file) && !stristr($file, "."))
  10.            {
  11.                listowanie($dir.$file);
  12.                echo $file.'<br />';
  13.            }
  14.        }
  15.        closedir($uchwyt);
  16.    }
  17. }
  18. listowanie(':/');
  19. ?>

Jak rozumiesz konstrukcje tego co napisałem to sam z pewnością bez problemu dopiszesz obsługę plików które wrzucisz do tablicy czy gdziekolwiek indziej.(Czy poprawne, nie mam pojęcia, kiedyś w każdym razie z podobnego korzystałem - to zaś pisane z palca jest)
mike
~golaod a tak nie prościej:
  1. <?php
  2.  
  3. $iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator('dir'), 1);
  4. foreach($iterator as $splFileInfo ) {
  5.    echo $splFileInfo . "<br />\n";
  6. }
  7.  
  8. ?>
questionmark.gif
golaod
W sytuacji gdy korzystamy z klas na pewno ;] Sam jednak nie korzystał z klasy tylko z kodu własnego więc i ja tak zrobiłem.
lupos
dzieki za pomoc :-)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.