Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] problem z otwarciem katalogu
Forum PHP.pl > Forum > Przedszkole
Fargo17
  1. <?
  2.  
  3. ob_start(gz_handler);
  4.  
  5. // funkcja pokazuje katalogi
  6. function show_img_folders()
  7. {
  8. $dp = opendir('./');
  9. while(false !== ($img_dir = readdir($dp)))
  10. {
  11. if($img_dir!='.' && $img_dir!='..')
  12. if(is_dir($img_dir)) echo '<a href="?dir='.$img_dir.'">'.$img_dir.'</a> ';
  13. }
  14. }
  15.  
  16. // funkcja pobiera obrazki z katalogu
  17. function get_images($dir)
  18. {
  19. // tablica z roszerzeniami ktore bedzie obslugiwac nasza galeria
  20. $extensions = array('jpg','jpeg','gif','png','JPG','JPEG','GIF','PNG');
  21.  
  22. // ladujemy obrazki
  23. $dp = opendir($dir);
  24. while(false !== ($image = readdir($dp)))
  25. {
  26. if($image != '.' && $image != '..')
  27. {
  28. $ext = explode('.', $image);
  29. if(in_array(strtolower($ext[1]), $extensions)) // sprawdzamy rozszerzenie
  30. $images[] = $image;
  31. }
  32. }
  33. return $images;
  34. }
  35.  
  36. // funkcja pobiera opisy
  37. function get_desc($dir)
  38. {
  39. // otwieramy plik z opisami
  40. $file = 'images.txt';
  41. if(file_exists($dir.$file))
  42. {
  43. $dp = fopen($dir.$file, 'r');
  44. while(!feof($dp2))
  45. {
  46. $desc = fgets($dp); // zczytujemy linijke z opisem
  47. $desc_exp[] = explode('|',$desc); // rozbijamy z formatu: obrazek.jpg|jakis opis
  48. }
  49. fclose($dp); // zamykamy plik
  50. return $desc_exp; // zwracamy tablice
  51. } else die('<font color="red">Stworz plik: "images.txt" w katalogu: <b>'.$dir.'</b></font>');
  52. }
  53.  
  54.  
  55.  
  56. if(isset($_GET['dir'])) // sprawdzamy czy ustawiono zmienna $_GET
  57. {
  58. if(is_dir($_GET['dir'])) // sprawdzamy czy istnieje katalog
  59. {
  60. $dir = $_GET['dir'].'/'; // katalog z fotkami
  61. $images = get_images($dir); // pobieramy do zmiennej nazwy obrazkow
  62. $descriptions = get_desc($dir); // pobieramy do zmiennej opisy
  63.  
  64. $col = 3; // ilosc kolumn obrazkow
  65.  
  66. // sprawdzamy czy tablica zawiera jakies nazwy obrazkow
  67. if(count($images) == 0) die('Nie znaleziono plikow graficznych');
  68.  
  69. // wyswietlamy wszystko
  70. echo '<table align="center"><tr><td colspan="'.$col.'">Znajdujesz się w <b>'.$dir.'</b><br><br></td></tr><tr>';
  71. foreach($images as $img)
  72. {
  73. echo '<td width="200" height="120" valign="top"><table align="center"><tr><td valign="top" align="center"><a href="'.$dir.$img.'" class="thickbox" target="_blank"><img src="graph.php?img_name='.$dir.$img.'" width="120" height="90" style="border-left-width:0px; border-top-width:0px; border-right-size: 1px solid #666666; border-bottom-size: 1px solid #666666;"></a></td></tr></table></td>';
  74. foreach($descriptions as $desc)
  75. {
  76. if($desc[0]==$img) echo $desc[1];
  77. else echo ' ';
  78. }
  79. echo ' ';
  80. $i++;
  81. if($i==$col) // jesli $i = liczbie kolumn, tworzymy nowy wiersz
  82. {
  83. $i=0;
  84. echo '</tr>';
  85. }
  86. }
  87. echo '<tr><td colspan="'.$col.'"></td></tr></table>';
  88. } else echo 'Katalog nie istnieje';
  89. } else show_img_folders(); // pokazujemy katalogi
  90. ?>


Próbowałem już na wszelkie znane mi sposoby, chciałbym by skrypt ten otwierał folder galeria znajdujący się w ./ w którym to znajdują się katalogi. Co zrobić by wyświetlił mi znajdujące się w ./galeria/ katalogi?

Pozdrawiam serdecznie

$dp = opendir('./'); wyświetla foldery z katalogu głównego, gdy zmienię na ./galeria/ nie wyświetla nic.
Fifi209
Cytat(Fargo17 @ 10.08.2009, 16:07:37 ) *
Próbowałem już na wszelkie znane mi sposoby, chciałbym by skrypt ten otwierał folder galeria znajdujący się w ./ w którym to znajdują się katalogi. Co zrobić by wyświetlił mi znajdujące się w ./galeria/ katalogi?

Pozdrawiam serdecznie

$dp = opendir('./'); wyświetla foldery z katalogu głównego, gdy zmienię na ./galeria/ nie wyświetla nic.


scandir + is_dir
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.