Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Lista plików z subkatalogów, W PHP5 uzywany jest scandir, jak w PHP4
skrobi
post 27.07.2004, 20:28:22
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 16.01.2003

Ostrzeżenie: (0%)
-----


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 ?

Ten post edytował skrobi 27.07.2004, 20:32:55
Go to the top of the page
+Quote Post
FiDO
post 27.07.2004, 22:19:25
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

Ostrzeżenie: (0%)
-----


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.


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
scanner
post 28.07.2004, 07:16:16
Post #3





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




NTG: Skrypty php -> php


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
broU
post 28.07.2004, 09:24:23
Post #4





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 3.07.2004

Ostrzeżenie: (0%)
-----


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. ?>
Go to the top of the page
+Quote Post
nexis
post 8.01.2005, 23:07:32
Post #5





Grupa: Zarejestrowani
Postów: 1 012
Pomógł: 109
Dołączył: 26.09.2003
Skąd: nexis.pl

Ostrzeżenie: (0%)
-----


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. ?>


--------------------
Zend Certified Engineer

Kliknij POMÓGŁ jeśli moja odpowiedź okazała się użyteczna!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 03:12