Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: listowanie katalogów
Forum PHP.pl > Forum > Przedszkole
żaba
witam

z poniższego skryptu kiedys korzystałem i wyswietlał mi dobrze (tam gdzie katalog pisalo obok katalog a tam gdzie nie... to nie smile.gif ) No i teraz wrzuciłem go spowrotem (ale na inny serwer) i wszystkie katalogi wy¶wietla jako NIE katalog :/

czemu tak ?

  1. <?php
  2. if($szKatalog = opendir('../galerie/.'))
  3. {
  4. // Wylistowanie elementow katalogu
  5. while(($szElementKatalogu = @readdir($szKatalog)) != false)
  6.  
  7. if(is_dir($szElementKatalogu)=="1") {
  8. echo "$szElementKatalogu - KATALOG<br />";
  9. }
  10. else
  11. {
  12. echo "$szElementKatalogu NIE katalog <br />";
  13. }
  14.  
  15.  
  16. }
  17. ?>
Fipaj
bool is_dir ()
czyli:
if (is_dir ($szElementKatalogu)) { ... }

i zapoznaj się z funkcją scandir" title="Zobacz w manualu php" target="_manual (wprowadzoną w PHP5).
Gość_zaba
próbowalem bez tegp "=="1" " ale niestety to samo :/

nie moge korzystac z php5
kszychu
usun @ sprzed readdir(). Może zwróci Ci jakieś błędy. i naprawdę wystarczy samo if(is_dir())
żaba
nie zwraca żadnego błędu

a tak wyświetla mi katalogi (między nimi wrzuciłem też plik style.css i też mówi że to nie katalog)

Kod
. - KATALOG
.. - KATALOG
2004_11_10_tyvhy NIE katalog
2004_08_wroclaw NIE katalog
2006_02_10_tychy NIE katalog
2005_05_21_szczyrk NIE katalog
2003_jaworzno NIE katalog
2004_07_jastrzebie NIE katalog
2004_01_jaworzno NIE katalog
2004_03_czechowice NIE katalog
2004_01_20_kato NIE katalog
2004_01_krk NIE katalog
2006_01_07_wosp NIE katalog
2004_02_06_krk NIE katalog
2004_11_zory NIE katalog
style.css NIE katalog
2004_07_02_zory NIE katalog
2005_04_30_wegierska_gorka NIE katalog
2004_03_20_pszczyna NIE katalog
2005_07_03_pszczyna NIE katalog
Fipaj
  1. <?php
  2. if($szKatalog = opendir('../galerie/.'))
  3. {
  4. // Wylistowanie elementow katalogu
  5. while(($szElementKatalogu = @readdir($szKatalog)) != false)
  6.  
  7. if(is_dir('../galerie/' . $szElementKatalogu)=="1") {
  8. echo "$szElementKatalogu - KATALOG<br />";
  9. }
  10. else
  11. {
  12. echo "$szElementKatalogu NIE katalog <br />";
  13. }
  14.  
  15.  
  16. }
  17. ?>


hehe, miałem kiedyś taki sam błąd biggrin.gif
żaba
no ok, teraz działa smile.gif

tylko mam takie jedno pytanko jeszcze :/ czemu to mi wyświetla te katalogi jakoś tak dziwnie listując ? :/ chyba powinno być alfabetycznie a nie jest :/
Fipaj
Dlaczego sądzisz, że powinno być automatycznie? ;-)

zobacz sortowanie tablic w php.
żaba
no dobra, troche poczytałem o tym sortowaniu i wiem, że trzeba by było użyć funkcji sort(); (bo to ona sortuje w kolejności alfabetycznej)... tylko gdzi i jak ? :| Próbowałem różnych kombinacji ale ciągle nie wychodziło :/
Fipaj
najpierw otwierasz katalog i czytasz elementy. masz już tablicę z katalogami i plikami.

sortujesz tablicę funkcją sort().

bierzesz tablicę w foreach i wyświetlasz...
NetJaro
A może zainteresujecie się funkcją glob" title="Zobacz w manualu php" target="_manual - o wiele łatwiejsze niż inne sposoby operacji na katalogach winksmiley.jpg
żaba
kurcze :/ chyba sam sobie z tym nie poradzę :/

próbowałem tak, ale wyskakuje błąd :/

  1. <?php
  2.  
  3. if($szKatalog = opendir('../galerie/.'))
  4. {
  5. sort($szKatalog);
  6. // Wylistowanie elementow katalogu
  7. while(($szElementKatalogu = readdir($szKatalog)) != false)
  8.  
  9. if(!is_dir('../galerie/' . $szElementKatalogu) || $szElementKatalogu == ".." || $szElementKatalogu == ".") {
  10.  
  11. }
  12. else
  13. {
  14.  echo "$szElementKatalogu<br />";
  15. }
  16.  
  17.  
  18. }
  19.  
  20. ?>
kszychu
W pętli while przypisz nazwy katalogów do tablicy, posortuj i dopiero jakimś foreach wyświetl sobie tę tablicę.
żaba
no dobra, znalazłem wszystko na temat pętli foreach (z samym posortoesanirm też chyba sobie dam radę) ale możesz mi powiedzieć jak nazwy katalogów przypisać do tablicy questionmark.gif
Fipaj
glob" title="Zobacz w manualu php" target="_manual bądź scandir" title="Zobacz w manualu php" target="_manual ;-)

albo robisz tak jak powiedział kszychu:

  1. <?php
  2. while (...) {
  3. $pliki[] = $szKatalog;
  4. }
  5. ?>
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.