Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: is_dir
Forum PHP.pl > Forum > Przedszkole
ARJ
przeszukiwałem forum ale nie znalazłem odpowiedzi.
  1. <?
  2. if(isset($_GET[&#092;"folder\"])){
  3. $folder=opendir(&#092;"./\". $_GET['folder']);
  4. while($file = readdir ($folder)){
  5. if(is_dir($file)){
  6. echo &#092;"Folder<A HREF=\"\". $_SERVER[\"PHP_SELF\"] .\"?folder=\". $file .\"\">\". $file .\"</A><BR />\";
  7. }else{
  8. echo $file .&#092;"<BR />\";
  9. }
  10. }
  11. }else{
  12. $folder=opendir(&#092;".\");
  13. while($file = readdir ($folder)){
  14. if(is_dir($file)){
  15. echo &#092;"Folder<A HREF=\"\". $_SERVER[\"PHP_SELF\"] .\"?folder=\". $file .\"\">\". $file .\"</A><BR />\";
  16. }else{
  17. echo $file .&#092;"<BR />\";
  18. }
  19. }
  20. }
  21. ?>

problem jest w tym że gdy wejde do folderu a tam jest następny to już do niego wejść niemoge.
byther
A może to zadziała?
  1. <?php
  2.  
  3. printf( 'Folder <a href=\"%s?folder=%s/%s\">%s</a><br/>', $_SERVER['PHP_SELF'], $_GET['folder'], $file, $file );
  4.  
  5. ?>


Wydaje mi się, że chodzi o ścieżkę dostępu, która jest względna do index.php...
ARJ
niestety to też niedziała dry.gif
dr_bonzo
  1. <?php
  2. $base_directory = './';
  3. $current_directory = $base_directory;
  4.  
  5. if ( isset( $_GET[ 'folder' ] ) )
  6. {
  7. $current_directory .= $_GET[ 'folder' ] . '/';
  8. }
  9.  
  10. print( &#092;"current directory: $current_directory<br />\" );
  11. printf( &#092;"<a href=\"%s\">back to script directory</a><hr />\", $_SERVER[ 'PHP_SELF' ] );
  12.  
  13. if ( is_dir( $current_directory ) )
  14. {
  15. $dir = opendir( $current_directory );
  16.  
  17. while ( $file_name = readdir( $dir ) )
  18. {
  19. $full_file_name = $current_directory . $file_name;
  20.  
  21. if ( is_dir( $full_file_name ) )
  22. {
  23. printf( &#092;"<a href=\"%s?folder=%s\">[%s]</a><br />\", $_SERVER[ 'PHP_SELF' ], $current_directory . urlencode( $file_name ), $file_name );
  24. }
  25. else
  26. {
  27. printf( &#092;"%s<br />\", $file_name );
  28. }
  29. }
  30. }
  31. ?>


Jest tylko jeden problem: cala sciezka jest przekazywana w URL -- zobacz jak bedzie on wygladal gdy pochodzisz sobie po katalogach
m-s
wielkie dzieki no ale juz mam ten plik:
  1. <?php
  2.  
  3. // i tu wlasnie chcialbym wpisac litere dysku... wpisalem i jest nie dobrze;)
  4. // wyswietla ladnie ale jak klikne w jakis link to nie otwiera mi folderu G:/xxx
  5. // tylko wyswietla mi G:/G:/xxx
  6. // trzeba jakos podzielic to wszystko zebym oddzielnie wpisal dysk i folder
  7. // tylko JAK ? :)
  8.  
  9. $base_directory = 'G:/';
  10. $current_directory = $base_directory;
  11.  
  12. if ( isset( $_GET[ 'folder' ] ) )
  13. {
  14. $current_directory .= $_GET[ 'folder' ] . '/';
  15. }
  16.  
  17. print( &#092;"current directory: $current_directory<br />\" );
  18. printf( &#092;"<a href=\"%s\">back to script directory</a><hr />\", $_SERVER[ 'PHP_SELF' ] );
  19.  
  20. if ( is_dir( $current_directory ) )
  21. {
  22. $dir = opendir( $current_directory );
  23.  
  24. while ( $file_name = readdir( $dir ) )
  25. {
  26. $full_file_name = $current_directory . $file_name;
  27.  
  28. if ( is_dir( $full_file_name ) )
  29. {
  30.  
  31.  
  32. // niewiem na jakiej zasadzie jest tu generowany link
  33. // dlatego niemam pojecia jak to zrobic;(
  34.  
  35. printf( &#092;"<a href=\"%s?folder=%s\">[%s]</a><br />\", $_SERVER[ 'PHP_SELF' ], 
  36.  
  37.  
  38.  
  39. $current_directory . urlencode( $file_name ), $file_name );
  40. }
  41. else
  42. {
  43. printf( &#092;"%s<br />\", $file_name );
  44. }
  45. }
  46. }
  47. ?>
dr_bonzo
OMG: windows w poblizu (heh, sam go teraz uzywam -- musze program w 'C++' napisac, ktory da sie napisac tylko pod Windowsem, ehhh)
Nie mam ph na windowsie wiec nie moge tego sprawdzic i przystosowac do widnowsa.

Najpierw sprawa linka:
Cytat
// niewiem na jakiej zasadzie jest tu generowany link
// dlatego niemam pojecia jak to zrobic;(
  1. <?php
  2.  
  3. printf( &#092;"<a href=\"%s?folder=%s\">[%s]</a><br />\", $_SERVER[ 'PHP_SELF' ], $current_directory . urlencode( $file_name ), $file_name );
  4. ?>


Poczytaj w manualu o funkcji printf

mozna to tez tak zrobic:
  1. <?php
  2.  
  3. print( &#092;"<a href=\"{$_SERVER[ 'PHP_SELF' ]}?folder=\" . $current_folder . $file_name . \"\">[{$file_name}]</a><br />\" );
  4.  
  5. ?>



Co do Gie:
Cytat
// i tu wlasnie chcialbym wpisac litere dysku... wpisalem i jest nie dobrze;)
// wyswietla ladnie ale jak klikne w jakis link to nie otwiera mi folderu G:/xxx
// tylko wyswietla mi G:/G:/xxx
// trzeba jakos podzielic to wszystko zebym oddzielnie wpisal dysk i folder
// tylko JAK ? smile.gif


$base_directory = './'; // czyli katalog skryptu - i sciezki do katalogow byly tworzone w odniesieniu do niego

zeby zrobic:

plik.php?folder=G:/kat_01/kat_02/

to trzeba sie nameczyc troche wiecej (przy przechodzeniu do katalogu '..' trzeba by usuwac ze sciezki 'G:/kat_01/kat_02/' 'kat_02' itd.

nie mam teraz czasu i mozliwosci na poprawienie tego.
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.