Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z wyswietlaniem losowych zdjec
Forum PHP.pl > Forum > Przedszkole
krasnial
Witam

Mam maly problemik, ze skryptem php, nie pomija mi tych elementów ".", ".." i przez to co jakiś czas mam pusty obrazek


oto skrypt (skrypt ma za zadanie lądować pliki z serwera następnie wyświetlić 3 losowe zdjęcia)
na domowym serwerze działa bez problemów, a tylko jak wrzucę na serwer robi taki błąd)

byłbym wdzięczny za pomoc

  1. <?php
  2.  
  3. if(!function_exists('scandir')) {
  4.  
  5. function scandir($dir, $sortorder = 0) {
  6.  
  7. if(is_dir($dir)) {
  8.  
  9. $dirlist = opendir($dir);
  10.  
  11. while ($file=readdir($dirlist)) {
  12. if(($file!=".")&&($file!=".."))
  13. {
  14. $files[] = $file;
  15.  
  16.  
  17. }
  18.  
  19. }
  20.  
  21. ($sortorder == 0) ? asort($files) : rsort($files); // arsort was replaced with rsort
  22.  
  23. return $files;
  24. } else {
  25.  
  26. return FALSE;
  27.  
  28. break;
  29.  
  30. }
  31.  
  32. }
  33.  
  34. }
  35.  
  36. ?>
  37.  
  38. <?
  39.  
  40. $test = './pliki/img/glowna/';
  41. define ('DIR', './pliki/img/glowna/'); // wybierz swoj katalog
  42. define ('ILE_FOTEK', '3'); // ile fotek ma byc wylosowanych
  43. $sDir = scandir(DIR, 0);
  44. $sRandom = array_rand($sDir, ILE_FOTEK);
  45. for($i=0;$i<count($sRandom);$i++)
  46. {
  47. echo '<img src="'.$test.''.$sDir[$sRandom[$i]].'" width=200 height= 150/><br><br>';
  48.  
  49. }
  50. ?>
zend
  1. <?php
  2.  
  3.  
  4. function myscandir($dir, $sortorder = 0) {
  5.  
  6. if(is_dir($dir)) {
  7.  
  8. $dirlist = opendir($dir);
  9.  
  10. while ($file=readdir($dirlist)) {
  11. if(($file!=".")&&($file!=".."))
  12. {
  13. $files[] = $file;
  14.  
  15.  
  16. }
  17.  
  18. }
  19.  
  20. ($sortorder == 0) ? asort($files) : rsort($files); // arsort was replaced with rsort
  21.  
  22. return $files;
  23. } else {
  24.  
  25. return FALSE;
  26.  
  27. break;
  28.  
  29. }
  30.  
  31. }
  32.  
  33. ?>
  34.  
  35. <?
  36.  
  37. $test = './pliki/img/glowna/';
  38. define ('DIR', './pliki/img/glowna/'); // wybierz swoj katalog
  39. define ('ILE_FOTEK', '3'); // ile fotek ma byc wylosowanych
  40. $sDir = myscandir(DIR, 0);
  41. $sRandom = array_rand($sDir, ILE_FOTEK);
  42. for($i=0;$i<count($sRandom);$i++)
  43. {
  44. echo '<img src="'.$test.''.$sDir[$sRandom[$i]].'" width=200 height= 150/><br><br>';
  45.  
  46. }
  47. ?>


Problem prawdopodobnie brał się z faktu że na localu nie masz funkcji scandir, przez co php uzywa tej funkcji zadeklarowanej przez ciebie, a na serwerze produkcyjnym jest scandir, który domyślnie nie omija katalogów "kropkowych", Teraz wszystko będzie działać
krasnial
Działa jak ta lala dzięki za pomoc 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.