Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pobranie listy zdjęć z folderu
Forum PHP.pl > Forum > PHP
impimp94
Witam!
Chcę pobrać listę zdjęć do php, a następnie przekazać tą listę javascript.
Napisałem taki kod, jest trochę zagmatwany. Nie wiem jaki wynik otrzymuję, bo strona się ładuję bez przerwy, może ktoś będzie wstanie mi powiedzieć dlaczego.
Z góry dzięki za pomoc!
Oto kod:
  1. <script type="text/javascript">
  2. var zdjecia = new array();
  3. </script>
  4. <?php
  5. $formaty = array("jpg","gif","bmp","png"); // Formaty zdjęć
  6. $katalog = "images/"; // Folder ze zdjęciami
  7. $pod_foldery = false; // Czy ma pobrać zdjęcia z pod folderów
  8. $lista = array();
  9. $count = 0;
  10. $dir = opendir($katalog);
  11. while(false !== ($file = readdir($dir))) {
  12. if (is_file($file)) {
  13. $count++;
  14. $path_info = pathinfo($katalog.$file);
  15. foreach ($formaty as $key => $val) {
  16. for ($i = 0; $i = count($formaty); $i++) {
  17. if ($path_info['extension'] == $val) {
  18. $lista[$count] = $katalog.$file;
  19. break;
  20. }
  21. }
  22. }
  23. }
  24. if ($pod_foldery == true) {
  25. if (is_dir($file)) {
  26. $dir2 = opendir($katalog.$file);
  27. while(false !== ($file2 = readdir($dir2))) {
  28. if (is_file($file2)) {
  29. $count++;
  30. $path_info = pathinfo($katalog.$file.$file2);
  31. foreach ($formaty as $key => $val) {
  32. for ($i = 0; $i = count($formaty); $i++) {
  33. if ($path_info['extension'] == $val) {
  34. $lista[$count] = $katalog.$file.$file2;
  35. break;
  36. }
  37. }
  38. }
  39. }
  40. }
  41. }
  42. }
  43. }
  44. print "<script type='text/javascript'>";
  45. for ($i = 0; $i >= count($lista); $i++) {
  46. print "zdjecia[".$i."] = ".$lista[$i].";";
  47. }
  48. print "</script>";
  49. print_r($lista);
  50. ?>
  51.  
CuteOne
Poczytaj komentarze http://pl.php.net/readdir zwłaszcza te o "szukaniu" podfolderów smile.gif
impimp94
Znalazłem coś takiego co mogło by mi pomóc
  1. <?php
  2. $dir = opendir ("../images");
  3. while (false !== ($file = readdir($dir))) {
  4. if (strpos($file, '.gif',1)||strpos($file, '.jpg',1) ) {
  5. echo "$file <br />";
  6. }
  7. }
  8. ?>

Można to zrobić tak prosto, a ja sobie utrudniam życię aaevil.gif

Teraz pojawił się kolejny problem a mianowicie z JavaScript. Mam problem z przekazaniem tablicy php do js. JS nie zwraca nic do przeglądarki, a raczej nie mam błędu składni. Oto kod:
  1. <?php
  2. $dir = opendir ("images/");
  3. while (false !== ($file = readdir($dir))) {
  4. if (strpos($file, '.gif',1)||strpos($file, '.jpg',1) || strpos($file, '.png',3) ) {
  5. array_push($lista,$file);
  6. }
  7. }
  8.  
  9.  
  10. print "<script type='text/javascript'>";
  11. for ($i = 0; $i >= count($lista); $i++) {
  12. print "zdjecia[".$i."] = ".$lista[$i].";";
  13. }
  14. print "zdjecia[1] = ".$lista[1].";";
  15. print "document.write(zdjecia[1]);";
  16. print "</script>";
  17. print_r($lista);
  18. ?>
  19.  
  20. <script type="text/javascript">
  21. for (i = 0; i >= zdjecia.lenght; i++ ) {
  22. document.write(zdjecia[i]);
  23. }
  24. </script>


A kod z przeglądarki wygląda tak :
  1. <script type="text/javascript">
  2.  
  3. var zdjecia = new array();
  4.  
  5.  
  6. <script type='text/javascript'>zdjecia[1] = ui-bg_gloss-wave_25_333333_500x100.png;document.write(zdjecia[1]);</script>Array
  7. (
  8. [0] => ui-bg_glass_40_0078a3_1x400.png
  9. [1] => ui-bg_gloss-wave_25_333333_500x100.png
  10. [2] => ui-icons_222222_256x240.png
  11. [3] => ui-bg_flat_30_cccccc_40x100.png
  12. [4] => ui-anim_basic_16x16.gif
  13. [5] => ui-bg_inset-soft_25_000000_1x100.png
  14. [6] => ui-icons_ffffff_256x240.png
  15. [7] => ui-bg_inset-soft_30_f58400_1x100.png
  16. [8] => ui-bg_glass_20_555555_1x400.png
  17. [9] => ui-icons_cccccc_256x240.png
  18. [10] => ui-bg_flat_50_5c5c5c_40x100.png
  19. [11] => ui-bg_highlight-soft_80_eeeeee_1x100.png
  20. [12] => ui-bg_glass_40_ffc73d_1x400.png
  21. [13] => ui-icons_a83300_256x240.png
  22. [14] => ui-icons_4b8e0b_256x240.png
  23. )
  24. <script type="text/javascript">
  25.  
  26. for (i = 0; i >= zdjecia.lenght; i++ ) {
  27.  
  28. document.write(zdjecia[i]);
  29.  
  30. }
  31.  

Wydaje mi się, że błąd robię w przekazaniu tablicy czyli tutaj
  1. for ($i = 0; $i >= count($lista); $i++) {
  2. print "zdjecia[".$i."] = ".$lista[$i].";";
  3. }
outsider
  1. <?php
  2. $dir = opendir ("images/");
  3. while (false !== ($file = readdir($dir))) {
  4. if (strpos($file, '.gif',1)||strpos($file, '.jpg',1) || strpos($file, '.png',3) ) {
  5. array_push($lista,$file);
  6. }
  7. }
  8.  
  9.  
  10. print "<script type='text/javascript'>";
  11. for ($i = 0; $i < count($lista); $i++) {
  12. print "zdjecia[".$i."] = '".$lista[$i]."';";
  13. }
  14. print "</script>";
  15. ?>
  16.  
  17. <script type="text/javascript">
  18. for (i = 0; i >= zdjecia.lenght; i++ ) {
  19. document.write(zdjecia[i]);
  20. }
  21. </script>


porównaj sobie zwłaszcza pętle for smile.gif
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.