Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Lista plików z subkatalogów
Forum PHP.pl > Forum > PHP
skrobi
Wiem że w PHP5 funkcją scandir można wypisać wszytkie istniejące pliki w katalogu głónym i subkatalogach, jak zrobić to w starszej wersji php ?
FiDO
Najlepiej rekurencyjnie.
Poczytaj komentarze do read_dir" title="Zobacz w manualu PHP" target="_manual

PS. scan_dir nie wyswietla zawartosci podkatalogow! Przynajmniej tak jest napisane w dokumentacji, nie sprawdzalem osobiscie.
scanner
NTG: Skrypty php -> php
broU
nie będę się chwalił aarambo.gif , ale napisałem ostatnio skrypt do przeglądania katalogów (: jak narazie bug'ów w nim nie znalazłem , więc jak ktoś może , niech rzuci okiem .

  1. <?php
  2.  
  3. $start = 'folder'; // startowy folder [ matka ]
  4.  
  5. function fol($poz, $fold) // $poz , $folder
  6. {
  7. if(!isset($fold)) {
  8. global $start;
  9. $folder = $start;
  10. } else {
  11. $folder = $fold;
  12. }
  13. $fol = opendir($folder);
  14. while(false !== ($file = readdir($fol)))
  15. {
  16. if($file != '.' && $file != '..') {
  17. if(is_dir($folder.'/'.$file)) {
  18. $foldery[] = $file;
  19. } else {
  20. $pliki[] = $file;
  21. }
  22. }
  23. }
  24. closedir($fol);
  25. if(isset($foldery)) {
  26. $g = 1;
  27. sort($foldery);
  28. reset($foldery);
  29. for($i=0;$i<count($foldery);$i++)
  30. {
  31. if($g == $poz) {
  32. $folder = $foldery[$i];
  33. return $folder;
  34. break;
  35. } else {
  36. $g++;
  37. }
  38. }
  39. }
  40. return $folder;
  41. }
  42.  
  43. if(isset($_GET['id'])) {
  44. $id = $_GET['id'];
  45. $level = strlen($id);
  46. for($i=0;$i<$level;$i++)
  47. {
  48. $poziom[] = substr($id,$i,1);
  49. }
  50. } else {
  51. $id = 0;
  52. $poziom = array();
  53. $poziom[] = 0;
  54. }
  55. for($i=0;$i<count($poziom);$i++)
  56. {
  57. $poz = $poziom[$i];
  58. if(isset($folder)) { 
  59. $temp .= $fold.'/';
  60. $folder = $temp;
  61. }
  62. $fold = fol($poz, $folder);
  63. $folder = $temp.$fold;
  64. }
  65. $fol = opendir($folder);
  66. while(false !== ($file = readdir($fol)))
  67. {
  68. if($file != '.' && $file != '..') {
  69. if(is_dir($folder.'/'.$file)) {
  70. $foldery[] = $file;
  71. } else {
  72. $pliki[] = $file;
  73. }
  74. }
  75. }
  76. closedir($fol);
  77. if(isset($foldery)) {
  78. sort($foldery);
  79. reset($foldery);
  80. $strId = 1;
  81. for($i=0;$i<count($foldery);$i++)
  82. {
  83. echo &#092;"<img src=\"img/fol.gif\\" align=\"top\" /> <a href=\"$PHP_SELF?id=$id$strId\">$foldery[$i]</a>\";
  84. $strId += 1;
  85. echo '<br />';
  86. }
  87. }
  88. if(isset($pliki)) {
  89. sort($pliki);
  90. reset($pliki);
  91. for($i=0;$i<count($pliki);$i++)
  92. {
  93. echo &#092;"<img src=\"img/fil.gif\\" align=\"top\" /> $pliki[$i]\";
  94. echo '<br />';
  95. }
  96. }
  97.  
  98.  
  99. ?>
nexis
Kolega wyżej ma błędne znaczniki ("!" oraz "\").
  1. <?php
  2.  
  3. $start = './'; // startowy folder [ matka ]
  4.  
  5. function fol($poz, $fold) // $poz , $folder
  6. {
  7. if(!isset($fold)) {
  8. global $start;
  9. $folder = $start;
  10. } else {
  11. $folder = $fold;
  12. }
  13. $fol = opendir($folder);
  14. while(false !== ($file = readdir($fol)))
  15. {
  16. if($file != '.' && $file != '..') {
  17. if(is_dir($folder.'/'.$file)) {
  18. $foldery[] = $file;
  19. } else {
  20. $pliki[] = $file;
  21. }
  22. }
  23. }
  24. closedir($fol);
  25. if(isset($foldery)) {
  26. $g = 1;
  27. sort($foldery);
  28. reset($foldery);
  29. for($i=0;$i<count($foldery);$i++)
  30. {
  31. if($g == $poz) {
  32. $folder = $foldery[$i];
  33. return $folder;
  34. break;
  35. } else {
  36. $g++;
  37. }
  38. }
  39. }
  40. return $folder;
  41. }
  42.  
  43. if(isset($_GET['id'])) {
  44. $id = $_GET['id'];
  45. $level = strlen($id);
  46. for($i=0;$i<$level;$i++)
  47. {
  48. $poziom[] = substr($id,$i,1);
  49. }
  50. } else {
  51. $id = 0;
  52. $poziom = array();
  53. $poziom[] = 0;
  54. }
  55. for($i=0;$i<count($poziom);$i++)
  56. {
  57. $poz = $poziom[$i];
  58. if(isset($folder)) { 
  59. $temp .= $fold.'/';
  60. $folder = $temp;
  61. }
  62. $fold = fol($poz, $folder);
  63. $folder = $temp.$fold;
  64. }
  65. $fol = opendir($folder);
  66. while(false !== ($file = readdir($fol)))
  67. {
  68. if($file != '.' && $file != '..') {
  69. if(is_dir($folder.'/'.$file)) {
  70. $foldery[] = $file;
  71. } else {
  72. $pliki[] = $file;
  73. }
  74. }
  75. }
  76. closedir($fol);
  77. if(isset($foldery)) {
  78. sort($foldery);
  79. reset($foldery);
  80. $strId = 1;
  81. for($i=0;$i<count($foldery);$i++)
  82. {
  83. echo &#092;"<img src=\"img/fol.gif\" align=\"top\" /> <a href=\"$PHP_SELF?id=$id$strId\">$foldery[$i]</a>\";
  84. $strId += 1;
  85. echo '<br />';
  86. }
  87. }
  88. if(isset($pliki)) {
  89. sort($pliki);
  90. reset($pliki);
  91. for($i=0;$i<count($pliki);$i++)
  92. {
  93. echo &#092;"<img src=\"img/fil.gif\" align=\"top\" /> $pliki[$i]\";
  94. echo '<br />';
  95. }
  96. }
  97.  
  98.  
  99. ?>
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.