Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Skrypt wyświetlający listę plików.
Forum PHP.pl > Forum > Gotowe rozwiązania
Mędrzec.
Mam taki skrypt
  1. <?
  2. function listDir($dir)
  3. {
  4.  
  5. $dir=getcwd();
  6. $fd=opendir($dir);
  7.  
  8. if(!$fd) return false;
  9. chdir($dir);
  10. while(($file=readdir($fd)) !== false)
  11. {                        
  12.    if($file==&#092;".\") continue;
  13.    if(is_dir($dir.&#092;"\".$file))
  14.    {
  15.       $link=&#092;"<A HREF=lista3.php?\";
  16.       $link.=&#092;"dir=\".dir.\"\".$file.\"\">\".$file.\"</A>\";
  17.       $link.=str_replace(&#092;"\",\"\",$link);
  18.       echo(&#092;"$link\");
  19.    }
  20.    else{
  21.         echo(&#092;"$file\");
  22.        }
  23.       echo(&#092;"<BR>\");
  24. }
  25. closedir($fd);
  26. }
  27.  
  28. @$dir = $_GET['dir'];
  29. if($dir=='') $dir = &#092;".\";
  30. listDir($dir);
  31.  
  32.  ?>

Wyświela on listę plików w danym katalogu, jak jest w nim folder to nie potrafie do niego wejść, poprostu kilkają na folder pokazuje mi się ta sama strona.
Dlaczego tak się dzieje

pozdr.
Dex1987
czesc,

musisz otworzyc ten folder znowu przez readdir. kiedys robilem takiego file menagera ale nie skonczylem bo nie mialem czasu. jak chcesz to napisz podesle Ci kod

EDIT: Wrzucilem tego FM'a. Ten kod tam jest dosc prymitywny, to bylo pisane jak sie uczylem php. Adres: www.dex.tarnow.net.pl/fm2.zip
Mędrzec.
ok dzięki.
Żeby nie zakładać nowego tematu zadam jeszcze pytanko.
Mam kodzik
  1. <?
  2.  
  3. function getDir($dir)
  4. {
  5. // zmienna otwierająca folder
  6. $open_folder=opendir($dir);
  7.  
  8. $show_folder=&#092;"<PRE>\";
  9. // pętla while a w niej zmienna czytająca folder
  10. while(($read_folder=readdir($open_folder)) !== false)
  11. {
  12. // wyświetlenie katalogu
  13. $show_folder.=&#092;"$read_folder\";
  14. $show_folder.=&#092;"n\";
  15. }
  16. $show_folder.=&#092;"</PRE>\";
  17. closedir($open_folder);
  18. return($show_folder);
  19. }
  20.  
  21.  
  22. ?>

potem niżej w pliku
  1. <? echo&#092;"<SELECT><OPTION VALUE=><PRE>\";?>
  2. <? print(getDir(&#092;"C://\")); ?>
  3. <? echo&

Bo chciałem, żeby było pole wyboru a wnim po kolei wszystkie katalogi.
Ale całe to mam w jednej lini i nie moge wybrać jednego katalogu bo odrazu pokazuje wszystkie w liście. Dało by jakoś zrobić aby były one pod sobą?
Nievinny
A kod może być pod PHP5?
Jeśli tak to kod interatora:
  1. <?php
  2.  
  3. class DirectoryTreeInterator extends RecursiveIteratorIterator 
  4. {
  5. public function current() {
  6. return str_repeat( '|&nbsp;&nbsp;', $this->getDepth() ) . '|-' . parent::current();
  7. }
  8. }
  9.  
  10. ?>

Ikod użycia
  1. <?php
  2.  
  3. $Dir = new DirectoryTreeInterator( new RecursiveDirectoryIterator( PATH ), true );
  4. foreach( $Dir as $File ) {
  5. print $File . '<br />';
  6. }
  7.  
  8. define( 'PATH' './' ); //przykladowy katalog do wykonania spisu
  9.  
  10. ?>


I w sumie stałej PATH przypisujesz nazwę katalogu.

Skrypt wyświetla katalogi w postaci drzewa.
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.