Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem Z Rotacją Grafik Na Stronie
Forum PHP.pl > Forum > PHP
pyrek
witam!
mam problem ze zrobieniem coś w stylu rotacji banerów jednak nie wiem ile będzie tych grafik a dokładnie.
wchodząc na stone powinna się pojawiać jedna grafika pobrana losowo z katalogu "galery". Nie jestem w stanie określić nazwy oraz ilości grafik wrzuconych do tego katalogu. Siedze i się męcze ale w php jestem dopiero raczkujący więc proszę o pomoc!
Szukałem na forum postów na ten temat i znalazłem pare opisów ale nie bardzo one pasują do mojego problemu!
HELP
sf
to zacznij od czegos prostrzego, krok po kroku, nie odrazu Rzym zbudowali ;>

a podejscie moze byc np. takie :
- tworzysz plik gdzie bedziesz dodawal nazwy banerow
- przy wejsciu na baner, otwierasz plik, pobierasz dane, losujesz baner i wyswietlasz

skomplikowane jak cholera tongue.gif
pyrek
właśnie nie bardzo sam moge tworzyć taki plik i tu jest problem!
Myślałem że może da się żeby skrypt sam pobierał zawartość katalogu i wybierał losowo jeden z plików. Ważne jest tylko to żeby to losowo nie wypadało ciągle na jeden plik!
sf
Da się, ale nie bardzo rozumiem dlaczego nie możesz tworzyć plików? Jak nie możesz to poprostu wgraj plik z danymi... i odczytaj go.

Jak chcesz tak dziwacznie robić to jest funckja dir... i cos takiego jak rand. Wszystko znajdziesz na stronie php.net razem z przykladami.
tiraeth
Po co ma tak jechać dookoła questionmark.gif

Poniżej kod:
  1. <?php
  2. // Nazwa katalogu z którego będziemy pobierać bannery
  3. $Katalog = 'bannery/';
  4.  
  5. // Poprzez poniższy kod odbywa się odczyt katalogu
  6. // i zapis wszystkich plików do tablicy $Bannery
  7. if( $Handle = opendir($Katalog) )
  8. {
  9. $i=0;
  10. while( ($Banner = readdir($Handle)) !== FALSE )
  11. {
  12. if($Banner !== &#092;"..\" && $Banner !== \".\")
  13. {
  14. $Bannery[$i] = $Katalog.$Banner;
  15. $i++;
  16. }
  17. }
  18. }
  19. closedir($Handle);
  20.  
  21.  
  22. // Zliczamy ilość elementów w tablicy
  23. $Tablic = count($Bannery);
  24.  
  25. // Ustawiamy losową liczbę z przedziału 0-$Tablic
  26. $Losowa = rand(0, $Tablic);
  27.  
  28. // Ustawiamy losowy banner
  29. $Banner = $Bannery[$Losowa];
  30.  
  31. echo '<img src=\"'.$Banner.'\" border=\"0\" alt=\"Obrazek: '.$Banner.'\">';
  32. ?>


No i będzie losowo wyświetlał smile.gif
pyrek
Cytat(Tiraeth @ 2004-08-27 20:16:28)
  1. <?php
  2.     // Nazwa katalogu z którego będziemy pobierać bannery
  3.     $Katalog = 'bannery/';
  4.  
  5.     // Poprzez poniższy kod odbywa się odczyt katalogu
  6.     // i zapis wszystkich plików do tablicy $Bannery
  7.     if( $Handle = opendir($Katalog) )
  8.     {
  9.         $i=0;
  10.         while( ($Banner = readdir($Handle)) !== FALSE )
  11.         {
  12.             if($Banner !== &#092;"..\" && $Banner !== \".\")
  13.             {
  14.                 $Bannery[$i] = $Katalog.$Banner;
  15.                 $i++;
  16.             }
  17.         }
  18.     }
  19.     closedir($Handle);
  20.  
  21.  
  22.     // Zliczamy ilość elementów w tablicy
  23.     $Tablic = count($Bannery);
  24.  
  25.     // Ustawiamy losową liczbę z przedziału 0-$Tablic
  26.     $Losowa = rand(0, $Tablic);
  27.  
  28.     // Ustawiamy losowy banner
  29.     $Banner = $Bannery[$Losowa];
  30.  
  31.     echo '<img src=\"'.$Banner.'\" border=\"0\" alt=\"Obrazek: '.$Banner.'\">';
  32. ?>

kontynułuje mój problem ponieważ coś jest nie tak z tym skryptem!



Owszem działa idelanie ale do pewnego mometu a mianowicie co jakiś czas nie pobiera grafiki. zachowuje się tak jak by ni mógł lub nie było zdjęcia. I robi tak systematycznie co jakiś czas przy np. 5 plikach co 3, 4 razy. Co to może być?
Yarecki
$Losowa = rand(0, $Tablic); powinno być $Losowa = rand(0, $Tablic - 1); ponieważ count zlicza liczbę elementów, ale indeksowanie tablicy zaczyna się o 0.
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.