Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> losowanie plików z folderu, pominięcie znaków "." i ".."
Arek00
post
Post #1





Grupa: Zarejestrowani
Postów: 177
Pomógł: 0
Dołączył: 8.11.2005

Ostrzeżenie: (0%)
-----


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. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




  1. <?php
  2. while ($plik = readdir($kat)) {
  3. if ($plik !='.' && $plik!='..')
  4.      $obrazki[] = $plik;
  5.      }
  6. ?>


Cytat
napisałem coś takiego
Czy oby napewno? (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
Arek00
post
Post #3





Grupa: Zarejestrowani
Postów: 177
Pomógł: 0
Dołączył: 8.11.2005

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 2006-02-21 15:40:33)
Cytat
napisałem coś takiego
Czy oby napewno? (IMG:http://forum.php.pl/style_emoticons/default/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. ?>
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
http://pl.php.net/manual/pl/function.srand.php

wniosek: jesli masz php > 4.2.0, nie musisz tej linijki juz dodawac (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
--Piotr--
post
Post #5





Goście







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. ?>
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 22:32