Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] odczyt katalogow z serwera i formularz
Forum PHP.pl > Forum > Przedszkole
Gość_andi_*
witam, mam pytanie jak zrobic tak, aby automatycznie odczytac wszystkie foldery z katalogu o nazwie xxx a nastepnie przypisac je do formularza, tzn jako opcje w liscie rozwijanej pojawily sie te nazwy katalogow snitch.gif? wiecie o co chodzi?
suck
  1. <?php
  2. $katalog='/xxx/';
  3. $kat=opendir($katalog);
  4. echo '<form>';
  5. echo '<select name=lista>'; 
  6. while ($plik=readdir($kat))
  7. {
  8. echo '<option>' .$plik;
  9. }
  10. echo '</select>';
  11. echo '</form>';
  12. ?>
bobekczekoladowy
pap podobny problem ale mój kod wygląda:
  1. <?php
  2. $op = opendir("test")
  3. if(!$op)
  4. {
  5. die("NIestety nie udało się otworzyć katalogu");
  6. }
  7. do
  8. {
  9. echo "<br>$s";
  10. $s = readdir($op);
  11. }
  12. while($s == true)
  13. closedir($op);
  14. ?>


chodzi o to że w while nie powinno być true tylko false, jeśli dam false to skrypt nie działa jak należy jeśli dam true to działa, a przecierz jeśli katalog się skończył funkcja readdir zwraca false
co może być tego powodem czy wogóle taki skrypt może istnieć, czy nienarusza jakiś zasad questionmark.gif worriedsmiley.gif
Ja_Szczur
1) jest drobna różnica pomiędzy pętlami while a do..while

2) nie, we while "powinno być" true tongue.gif [trwaj dopóki]

to powinno pomóc

  1. <?php
  2. while( ( $file = readdir( $op ) ) !== false ) // dopóki nie zwróci false
  3. {
  4. //...
  5. }
  6. ?>


jeżeli stosujesz do..while, pętla wykona się, nawet jeśli tego nie chcesz
[sprawdzanie warunku następuje po wykonaniu pętli]
Kicok
  1. <?php
  2. $dirname = './xxx/';
  3. echo('<select>');
  4.  
  5. $dir = opendir($dirname); #[1]
  6. while($item = readdir($dir)) #[2]
  7. {
  8. if(($item != '.') && ($item != '..') && (is_dir($dirname.$item))) #[3]
  9. echo('<option>'.$item.'</option>');
  10. }
  11.  
  12. echo('</select>');
  13. closedir($dir); #[4]
  14. ?>


[1] - otwórz katalog
[2] - dopóki się da odczytuj elementy z katalogu i przypisuj je do zmiennej $item
[3] - jeśli $item nie jest korpką (oznacza "ten sam poziom" w drzewie katalogów) oraz nie jest dwoma kropkami (oznacza "poziom wyżej" w drzewie katalogów) oraz jest katalogiem (funkcja is_dir()) to wyświetl go jako element formularza
[4] - zamknij katalog
bobekczekoladowy
zrobiłem wedłóg Ja_Szczór taki skrypcik:
  1. <?php
  2. $op = opendir("test");
  3. if(!$op)
  4. {
  5. die("Niestety nie udało się otworzyć katalogu");
  6. }
  7. while(($s = readdir($op)) !== false )
  8. {
  9. echo "<br>$s";
  10. }
  11. closedir($op);
  12. ?>


EDIT: wszystko wporządku //miałem lekkie komplikacje
dzięki 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.