Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: losowanie plików z folderu
Forum PHP.pl > Forum > Przedszkole
Arek00
potrzebuję wylosować z folderu 5 plików, napisałem coś takiego i jest ok, z tym że w wynikach są znaki wyjścia z folderu czyli "." i ".." jak mogę je pominąć przy losowaniu?
  1. <?php
  2. $katalog = "files/promocje";
  3. $kat = opendir($katalog);
  4.  
  5. $obrazki = array();
  6.  
  7. while ($plik = readdir($kat)) {
  8.  $obrazki[] = $plik;
  9.  }
  10. $losowe = array_rand($obrazki, 5);
  11.  
  12. echo $obrazki[$losowe[0]] . "<br>";
  13. echo $obrazki[$losowe[1]] . "<br>";
  14. echo $obrazki[$losowe[2]] . "<br>";
  15. echo $obrazki[$losowe[3]] . "<br>";
  16. echo $obrazki[$losowe[4]] . "<br>";
  17. ?>
nospor
  1. <?php
  2. while ($plik = readdir($kat)) {
  3. if ($plik !='.' && $plik!='..')
  4.      $obrazki[] = $plik;
  5.      }
  6. ?>


Cytat
napisałem coś takiego
Czy oby napewno? winksmiley.jpg
Arek00
Cytat(nospor @ 2006-02-21 15:40:33)
Cytat
napisałem coś takiego
Czy oby napewno? winksmiley.jpg

to jest bardzo podobne do przykładu z manuala ale jak chciałem bezpośrednio zastosować kod z tego przykładu do tego co już miałem to nie wyświetlało mi wyników (nie wiem dlaczego) więc męczyłem się sam tak że najpierw miałem same indeksy a potem dopiero prawidłowe wyniki...

a tak w ogóle to po co w manualu przy przykładzie do array_rand jest ta linijka:
  1. <?php
  2. srand((float) microtime() * 10000000);
  3. ?>
nospor
Cytat
a tak w ogóle to po co w manualu przy przykładzie do array_rand jest ta linijka:
i tu zagladamy do manuala i co widzimy?:
Cytat
Notatka: Od php w wersji 4.2.0 nie ma potrzeby inicjalizować generatora liczb losowych funkcją srand() lub mt_srand(), ponieważ dzieje się to automatycznie.
zagladamy wiec dalej, czyli do srand() i widzimy juz co to robilo winksmiley.jpg
http://pl.php.net/manual/pl/function.srand.php

wniosek: jesli masz php > 4.2.0, nie musisz tej linijki juz dodawac smile.gif
-Piotr-
po tej poprawce nie losuje już "." i ".."
  1. <?php
  2. $kat = opendir(miniaturki);
  3.  
  4. $obrazki = array();
  5.  
  6. while(false !=($plik = readdir($kat))){
  7. if($plik != "." && $plik != ".."){
  8. $obrazki[] = $plik;
  9. }
  10. }
  11. $losowe = array_rand($obrazki, 5);
  12.  
  13. echo $obrazki[$losowe[0]] . "<br>";
  14. echo $obrazki[$losowe[1]] . "<br>";
  15. echo $obrazki[$losowe[2]] . "<br>";
  16. echo $obrazki[$losowe[3]] . "<br>";
  17. echo $obrazki[$losowe[4]] . "<br>";
  18. ?>
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.