Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Prosty skrypt PHP losujący obrazki
Forum PHP.pl > Inne > Oceny
konrad852
Witam,
Na wstępie zaznaczę że dopierouczę się tego języka, wiem że jest to banalny skrypt ale tak naprawdę mój pierwszy który coś robi biggrin.gif.

Do wglądu pod adresem: http://vmedia.org.pl/php-img-lottery/
wystarczy odświerzyć stronę i na nowo będzie losowało obrazek.

Kod:
  1.  
  2. <?php
  3. $a = "<img src=\"img/1.jpg\" alt=\"\" />";
  4. $b = "<img src=\"img/2.jpg\" alt=\"\" />";
  5. $c = "<img src=\"img/3.jpg\" alt=\"\" />";
  6.  
  7. $img = array(array("img"=>"$a"),
  8. array("img"=>"$b"),
  9. array("img"=>"$c"),
  10. );
  11. $losowanie = count($img);
  12. $maxInt = $losowanie - 1;
  13. $losowanie_rand = rand(0, $maxInt);
  14.  
  15. echo $img[$losowanie_rand]['img'];
  16.  
  17. ?>


Proszę napisać czy jest jakieś lepsze rozwiązanie napisania takiego skryptu oraz wasze sugestie i uwagi.
Pozdrawiam,
K.W.
toaspzoo
a słyszałeś o array_rand ?
http://php.net/manual/en/function.array-rand.php
rocktech.pl
Witam.

  1. $img = glob ( "*.jpg" );
  2. $random_key = array_rand ( $img );
  3. echo "<img src=\"{$img[$random_key]}\" alt=\"\" />";
konrad852
Cytat
a słyszałeś o array_rand ?


Nie słyszałem o tym, mógłbys mi pokazać na jakimś prostym przykładzie jak to działa?

rocktech, wydaje mi się że mniej więcej rozmiem jak działa ten kod, ale jak pisałem php uczę się od niedawna, funkcja glob jest mi nie znana, array_random też, ale myślę, że jak będę miał chwilke czasu to poczytam o tym i będę lepiej wiedział jak to stosować.
Dzięki wielkie za porady wink.gif
scanner
Cytat(konrad852 @ 17.09.2012, 12:03:57 ) *
Nie słyszałem o tym, mógłbys mi pokazać na jakimś prostym przykładzie jak to działa?

RTFM do cholery: array_rand
markonix
Cytat(rocktech.pl @ 17.09.2012, 09:20:20 ) *
Witam.

  1. $img = glob ( "*.jpg" );
  2. $random_key = array_rand ( $img );
  3. echo "<img src=\"{$img[$random_key]}\" alt=\"\" />";

Czy stosowanie \ i { ma jakieś zalety czy to tylko upodobanie/ przyzwyczajenie?
Wg mnie tak kod wygląda znacznie lepiej:
  1. $img = glob('*.jpg');
  2. echo '<img src="'. $img[array_rand($img)] .'" alt="" />';
Posio
@UP

Po prostu używał " zamiast ` ale dlaczego walił slashe....
redeemer
Cytat(Posio @ 17.09.2012, 15:04:54 ) *
@UP

Po prostu używał " zamiast ` ale dlaczego walił slashe....
Jak już to :
1) ' (nie `)
2) backslashe (nie slashe). A czemu je "walił" to powinieneś wiedzieć...

Swoją drogą wrzucać 15-linijkowy skrypt do działu oceny? Hm....
binprogrammer
skrypt jak na początek dobry, chociaż jak pokazali da się krócej jeszcze smile.gif

ps. chlopaki ocencie biggrin.gif

  1. <?php echo "Hello World"; ?>


ps2: wiecie ze raz jak nie dzialalo mi echo w funkcji to dalem print i dzialalo? bez sensu, nie ma przeciez chyba roznicy heh, off top zrobilem, ale git


Niestety nie ma co oceniać za bardzo, a szkoda, idz w dobra strone i przyjdz za rok, ocenimy twojego cmsa, albo jakis wiekszy program smile.gif
!*!
Cytat(binprogrammer @ 17.09.2012, 16:42:46 ) *
ps. chlopaki ocencie biggrin.gif

  1. <?php echo "Hello World"; ?>


A co jeśli ocenić chciałaby to kobieta np. szef moderatorów? biggrin.gif Kod fatalny... no gdzie mi z tym cudzysłowem.

Cytat
ps2: wiecie ze raz jak nie dzialalo mi echo w funkcji to dalem print i dzialalo? bez sensu, nie ma przeciez chyba roznicy heh, off top zrobilem, ale git


Też tak miałem, ale później wytrzeźwiałem.
konrad852
ej no dzięki śmiejcie się ze mnie, piszę przecież że dopiero się uczę... A dałem do oceny bo nie znalazłem innego pasującego działu.
!*!
Cytat(konrad852 @ 20.09.2012, 12:39:37 ) *
ej no dzięki śmiejcie się ze mnie, piszę przecież że dopiero się uczę... A dałem do oceny bo nie znalazłem innego pasującego działu.

Nie z Ciebie, dobrze że się uczysz, chodzi o to że w tym dziale z reguły są pokaźniejsze skrypty do oceny, te kilka linijek to jest nic i nie ma co oceniać, wrzuć tego typu kod do przedszkola z zapytaniem czy można lepiej, bo w 99% zawsze można... Nie bierz tego tak osobiście, czasami się nabijamy, głównie z siebie wink.gif
toaspzoo
Cytat(konrad852 @ 17.09.2012, 12:03:57 ) *
Nie słyszałem o tym, mógłbys mi pokazać na jakimś prostym przykładzie jak to działa?

rocktech, wydaje mi się że mniej więcej rozmiem jak działa ten kod, ale jak pisałem php uczę się od niedawna, funkcja glob jest mi nie znana, array_random też, ale myślę, że jak będę miał chwilke czasu to poczytam o tym i będę lepiej wiedział jak to stosować.
Dzięki wielkie za porady wink.gif



Poproś kogoś, niech Ci wytłumaczy jak działa funkcja...
konrad852
Trochę mnie to demotywuje, ale raczej się na poddam z php bo zainwestowałem w kurs troszkę, może nie dużo ale zawsze coś.
Do funkcji jeszcze nie doszedłem bo chcę sobie lepiej przyswoić to czego się nauczyłem do tej pory, a następny dział to właśnie funkcje, a mam wrażenie że jak pójdę teraz dalej to mi się to wszystko pomiesza.

Dzięki za wskazówkę "!*!" na przyszłość takie żeczy będę wrzucał do przedszkola.

Pozdrawiam,
KW.
materkamil
Ten kod:

  1. <?php
  2. $a = "<img src=\"img/1.jpg\" alt=\"\" />";
  3. $b = "<img src=\"img/2.jpg\" alt=\"\" />";
  4. $c = "<img src=\"img/3.jpg\" alt=\"\" />";
  5.  
  6. $img = array(array("img"=>"$a"),
  7. array("img"=>"$b"),
  8. array("img"=>"$c"),
  9. );
  10. $losowanie = count($img);
  11. $maxInt = $losowanie - 1;
  12. $losowanie_rand = rand(0, $maxInt);
  13.  
  14. echo $img[$losowanie_rand]['img'];
  15.  
  16. ?>


robi praktycznie to samo co ten kod:

  1. <?php
  2. echo('<img src='.rand(1,3).'.jpg></img>');
  3. ?>


To dodam tak na marginesie bo napisałeś w 1 poście:

Cytat
Proszę napisać czy jest jakieś lepsze rozwiązanie napisania takiego skryptu


Przykład działania:

http://94.251.191.53/123.php
toaspzoo
Cytat(materkamil @ 20.09.2012, 18:31:21 ) *
Ten kod:

  1. <?php
  2. $a = "<img src=\"img/1.jpg\" alt=\"\" />";
  3. $b = "<img src=\"img/2.jpg\" alt=\"\" />";
  4. $c = "<img src=\"img/3.jpg\" alt=\"\" />";
  5.  
  6. $img = array(array("img"=>"$a"),
  7. array("img"=>"$b"),
  8. array("img"=>"$c"),
  9. );
  10. $losowanie = count($img);
  11. $maxInt = $losowanie - 1;
  12. $losowanie_rand = rand(0, $maxInt);
  13.  
  14. echo $img[$losowanie_rand]['img'];
  15.  
  16. ?>


robi praktycznie to samo co ten kod:

  1. <?php
  2. echo('<img src='.rand(1,3).'.jpg></img>');
  3. ?>


To dodam tak na marginesie bo napisałeś w 1 poście:



Przykład działania:

http://94.251.191.53/123.php


Po co ten post? Autor wątku podał przykład działania jego skryptu, zostało mu wytłumaczone a twój link do skryptu nie prezentuje niczego więcej niż jego
Cytat
!*!
Cytat(materkamil)
robi praktycznie to samo co ten kod:


Teoretycznie. W praktyce się wywali, gdy nie znajdzie pliku, co zresztą lepiej pokazał rocktech.pl.
materkamil
Tylko w prostym przykładzie pokazałem jak można lepiej stworzyć ten sam skrypt o co autor pytał

@up: racja, ale można dodać jednego ifa i wszystko ok
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.