ďťż

[php]losowy obrazek

       

Podstrony


telcocafe

siemka mam jeszcze jeden problem. Otóż robie losowy obrazek, zczytuje wszystkie pliki do tablicy a potem za pomocą array_rand losuje sobie obrazek. Ale problem w tym, że pętla zczytuje dosłownie wszystko...tzn także . jak i ..

co zrobić żeby przejść do katalogów wyżej nie zczytywało ?

wygląda to tak:

$curpath = 'admin/zdjecia'; $dir = dir($curpath); $tab = array(); while ($file = $dir->read()) { $tab[] = $file; } $dir->close(); print_r($tab); srand ((float) microtime() * 10000000); $obrazek = $tab[array_rand($tab)]; echo "<b>".$obrazek."</b>"; echo "<img src='admin/zdjecia/".$obrazek."' width='140' height='140' />";
Użytkownik Dawid-San edytował ten post 28 luty 2007, 19:14


Pokaż pętlę... Albo daj:
if ($wartosc_wczytywana_do_tablicy == '.' || $wartosc_wczytywana_do_tablicy == '..')
continue;

//Aha, zatem będzie to takie:
$curpath = 'admin/zdjecia'; $dir = dir($curpath); $tab = array(); while ($file = $dir->read()) { if ($file =='.' || $file=='..'){ continue; } $tab[] = $file; } $dir->close(); print_r($tab); srand ((float) microtime() * 10000000); $obrazek = $tab[array_rand($tab)]; echo "<b>".$obrazek."</b>"; echo "<img src='admin/zdjecia/".$obrazek."' width='140' height='140' />";
Użytkownik pbnan edytował ten post 28 luty 2007, 19:16
$curpath = 'admin/zdjecia'; $i = 0; $dir = dir($curpath); $tab = array(); while ($file = $dir->read()) { $tab[] = $file; $i++; } $dir->close(); srand ((float) microtime() * 10000000); $obrazek = $tab[array_rand($tab)]; if($obrazek == '.' OR $obrazek == '..') { $obrazek = $tab[array_rand($tab)]; echo "<img src='admin/zdjecia/".$obrazek."' width='140' height='140' />"; } else { echo "<img src='admin/zdjecia/".$obrazek."' width='140' height='140' />"; }

w ten sposób to rozwiązałem...co o tym myślicie?

edit// pban twój sposób znacznie lepszy :) dzięki i pozdrawiam
Użytkownik Dawid-San edytował ten post 28 luty 2007, 19:23
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.