Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> losowanie plików z folderu, pominięcie znaków "." i ".."
Arek00
post 21.02.2006, 15:36:38
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
nospor
post 21.02.2006, 15:40:33
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? winksmiley.jpg


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Arek00
post 21.02.2006, 15:53:31
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? 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 21.02.2006, 15:56:47
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 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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
--Piotr--
post 7.01.2013, 20:18:01
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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.07.2025 - 22:49