kamil92
3.11.2006, 20:10:38
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
3.11.2006, 21:36:23
http://pl2.php.net/manual/en/function.readdir.phpManual Twoim przyjacielem! Tam masz przykład porawnego i niepoprawnego (tego właśnie używasz

) sposobu używania readdir. Powinno pomóc (po prostej modyfikacji, z która powinieneś sobie poradzić).
Adrian Staniszewski
3.11.2006, 22:51:32
Radze dodac sprawdzanie czy dany obiekt nie jest przypadkiem plikiem.
fiszol
4.11.2006, 00:51:49
skoro wszyscy z radą to i ja: proszę używaj znacznika [php] kiedy wklejasz kod, naprawdę przyjemniej się w tedy przegląda...
skowron-line
4.11.2006, 10:03:30
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
5.11.2006, 15:06:43
dzięki za pomoc :-)
jeszcze jeden absurdalny problem. Nie mam pojęcia czemu nie działa
<?php
while(false !== ($plik = readdir($katalog))) {
if (($plik != '.') && ($plik != '..') && ($plik != 'Thumbs.db')) { //nie wiem czemu ale w każdym //katalogu mam takie thumbs.db
$wyswietl .= "folder to: $plik";
}
else {
$wyswietl .= "tytul zdjecia: $plik";
}
}
}
?>
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
5.11.2006, 15:28:18
nie is_file tylko is_dir tylko bez zaprzeczenia
kamil92
5.11.2006, 15:45:05
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

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.