Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z foreach, wyświetla o jeden wynik za dużo ?
Forum PHP.pl > Forum > PHP
mskiba
Witam, jak w temacie, mam problem z pętlą foreach, poniżej skrypt.


  1. $directory = "gallery/";
  2.  
  3. $dir = opendir($directory);
  4.  
  5. $files = array();
  6. while ($files[] = readdir($dir));
  7. sort($files);
  8. closedir($dir);
  9.  
  10. foreach ($files as $file){
  11. if (($file!=".")&&($file!="..")){
  12.  
  13. $arr = pathinfo($file);
  14. $name=substr($file, 0, strrpos($file, '.'));
  15. $img = $name;
  16.  
  17. [b] echo "$img<a href = \"java script:void(0)\" onclick = \"document.getElementById('img".$img."').style.display='block';document.getElementById('przejscie').style.display='block'\"><img class=\"img_thumb\" src=".$directory.$img.".".$arr["extension"]."></a>";[/b]
  18.  
  19. echo "
  20. <div id=\"img".$img."\" class=\"biala_tresc\">
  21. <a href = \"java script:void(0)\" onclick = \"document.getElementById('img".$img."').style.display='none';document.getElementById('przejscie').style.display='none'\"><img class=\"img_full\" src=".$directory.$img.".".$arr["extension"]."></a>
  22.  
  23. <a href = \"java script:void(0)\" onclick = \"
  24. document.getElementById('img".$img."').style.display='none';
  25. document.getElementById('przejscie').style.display='none';
  26. document.getElementById('img";echo $img-1; echo"').style.display='block';
  27. document.getElementById('przejscie').style.display='block'
  28. \"><img id=\"left\" src=images/img_strzalka_left.png></a>
  29.  
  30. <a href = \"java script:void(0)\" onclick = \"
  31. document.getElementById('img".$img."').style.display='none';
  32. document.getElementById('przejscie').style.display='none';
  33. document.getElementById('img";echo $img+1; echo"').style.display='block';
  34. document.getElementById('przejscie').style.display='block'
  35. \"><img id=\"right\" src=images/img_strzalka_right.png></a>
  36.  
  37. </div>
  38. <div id=\"przejscie\" class=\"czarne_tlo\">
  39.  
  40. </div>
  41. ";
  42. }
  43. }


chodzi o pogrubioną część, w katalogu directory mam 4 pliki jpg, 1.jpg, 2.jpg, 3.jpg i 4.jpg, i chciałem je wszystkie wyświetlić. I wszystko byłoby dobrze gdyby nie to że przed tymi plikami wyświtla się jeszcze jeden plik (.) - sama kropka. Nie jest to ta linuxwowa kropka z katalogu, bo te pomija inftrukcja warynkowa, to jest kropka z tej pogrubionej lini. Tak jakby pierwsze zdjecie bylo bez wartosci zmiennej, jak to pominac?
jackraymund
Mi wykrywa 1 wpis jako false
ZAWSZE UZYWAJ FUNKCJI VAR_DUMP!

czyli zrób taki warunek
  1. if (!$file){
  2.  
  3. }
mskiba
Dzięki, pomogło wink.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.