Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]wyczytywanie z folderów w zagniżdżonej pętli
Forum PHP.pl > Forum > Przedszkole
kamil92
Witam wszystkich.

Mam problem:

Powiedzmy, że robię galerię i mam folder 'galeria' a w nim 3 foldery:

Asia
Basia
Kasia

W każdym folderze mogą być zdjęcia ale nie muszą.

Chodzi o to, aby wypisać w pętli listę folderów w galerii i w nawiasie podać liczbę zdjęć (plików) w folderze np.

Asia (5)
Basia (2)
Kasia (0)

Oto część kodu:

<?php
$plik = ''; // deklaracja zmiennej
$katalog = opendir('galeria/'); //ustalanie uchwytu
$plik2 = ''; //deklaracja zmiennej
$plik_w_katalogu = 0; //liczba plików w danym katalogu

while ($plik = readdir($katalog)) { //początek pętli

if (($plik != ".") && ($plik != "..")) { //pomijanie folderów '.' i '..' (obecny folder i nadrzędny folder)
$plik2 = "skany/$plik/"; //nadanie zmiennej plik2 wartości np. skany/Asia/

while($plik3 = readdir(opendir($plik2))) {
$plik_w_katalogu++; //inkrementacja zmiennej liczby zdjęć w katalogu Asia czy Basia
}

echo "<a href='pokaz.php=$plik'>$plik</a>($$plik_w_katalogu)<br>"; //wypisanie linków do //folderów z ilością plików w nawiasach
}
} //koniec pętli
closedir($katalog); //zamknięcie uchwytu



Pewnie ten kod zawiera masą błędów, nie wiem nawet czy zrozumiecie w czym problem, ale mimo to proszę o pomoc!

POzdrawiam, Kamil
misieq
http://pl2.php.net/manual/en/function.readdir.php
Manual Twoim przyjacielem! Tam masz przykład porawnego i niepoprawnego (tego właśnie używasz winksmiley.jpg ) sposobu używania readdir. Powinno pomóc (po prostej modyfikacji, z która powinieneś sobie poradzić).
Adrian Staniszewski
Radze dodac sprawdzanie czy dany obiekt nie jest przypadkiem plikiem.
fiszol
skoro wszyscy z radą to i ja: proszę używaj znacznika [php] kiedy wklejasz kod, naprawdę przyjemniej się w tedy przegląda...
skowron-line
napisz funkcje ktora bedzie opczytywac dane z katalogu wrzucac je do tablicy i obliczac liczbe elementow a potem sprawdzaj czy dany obiekt jest folderem i jesli tak to odwoluj sie do tej funkcji zeby obliczyc liczbe elementow

edit:

no edit
kamil92
dzięki za pomoc :-)

jeszcze jeden absurdalny problem. Nie mam pojęcia czemu nie działa sad.gif
  1. <?php
  2. while(false !== ($plik = readdir($katalog))) {
  3.  
  4. if (($plik != '.') && ($plik != '..') && ($plik != 'Thumbs.db')) { //nie wiem czemu ale w każdym //katalogu mam takie thumbs.db
  5. if (!is_file("$plik")) {
  6. echo "to nie plik";
  7. $wyswietl .= "folder to: $plik";
  8. }
  9. else {
  10. $wyswietl .= "tytul zdjecia: $plik";
  11. }
  12. }
  13. }
  14. ?>

Problem w tym, że co to nie jest (plik lub folder) zawsze spełnia warunek dla pierwszego if czyli jest traktowane jako folder. W czym problem??

Pozdrawiam, Kamil
skowron-line
nie is_file tylko is_dir tylko bez zaprzeczenia
kamil92
jak zmieniłem na is_dir to wszystko jak leci interpretowane jest jak plik czyli omija if i idzie do else i tam się wykonuje intrukcja. Bez sensu blink.gif

ok, juz sobie poradziełm

dzięki za pomoc,
pozdrawiam, Kamil
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.