Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Wyswietlanie fotek z danego katalogu
Forum PHP.pl > Forum > Przedszkole
byczek
Witam poszukuje skryptu który bedzie wyswietlał losowe fotki z danego katalogu

istnieje takie coś ? i czy moe mi ktos pomóż smile.gif

Pozdrawiam
Void
Rozumiem, że masz katalog, w którym trzymasz różne zdjęcia i chcesz z niego wybrać losowe zdjęcie?

Poczytaj o funkcjach opendir" title="Zobacz w manualu PHP" target="_manual() i readdir" title="Zobacz w manualu PHP" target="_manual().
Pliki znalezione przez readdir() wrzucaj do jakiejś tablicy i wybierz z niej losowy element za pomocą array_rand" title="Zobacz w manualu PHP" target="_manual(). Potem już normalnie wyświetlasz zdjęcie.
matix
Prosty przykład ;-)

  1. <?
  2. define ('DIR', 'twojkatalog/'); // wybierz swoj katalog
  3. define ('ILE_FOTEK', '5'); // ile fotek ma byc wylosowanych
  4.  
  5. $sDir = scandir(DIR, 0);
  6.  
  7. print_r($sDir); // zwroci pliki jako array.
  8.  
  9. $sRandom = array_rand($sDir, ILEFOTEK);
  10.  
  11. print_r($sRandom);
  12.  
  13. foreach ($sRandom as $sFotki)
  14. {
  15. echo '<img src="'.$sFotki.'"/><br/>';
  16. }
  17. ?>


Powinien działać.

Pozdrawiam,
Matix.
byczek
Problem mam smile.gif

Fatal error: Call to undefined function: scandir() in /home/torrone/public_html/gif/viewer.php on line 39

Linia 39 to
  1. <?php
  2. $sDir = scandir(DIR, 0);
  3. ?>
abc667
to dorzuć na początek gdzieś
  1. <?php
  2. if(!function_exists('scandir')) {
  3.  function scandir($dir, $sortorder = 0) {
  4.  if(is_dir($dir)) {
  5.  $dirlist = opendir($dir);
  6.  while( ($file = readdir($dirlist)) !== false) {
  7.  if(!is_dir($file)) {
  8.  $files[] = $file;
  9.  }
  10.  }
  11.  ($sortorder == 0) ? asort($files) : rsort($files); // arsort was replaced with rsort
  12.  return $files;
  13.  } else {
  14.  return FALSE;
  15.  break;
  16.  }
  17.  }
  18. }
  19. ?>

//funkcja z komentarzy na php.net
byczek
Teraz to mi wywalaja wszystkie fory z katalogo

[1771] => 97810.jpg [2169] => 97843.jpg [142] => 97870.jpg [1939] => 97880.jpg [2422] => 9791big.jpg [858] => 97982.jpg [1713] => 9798Girlfriends - Bonus - (Studio A) [2001] Leg Fantasy 25.jpg [1425] => 9798big367.jpg [890] => 98020.jpg [373] => 980210.jpg [490] => 98041.jpg [378] => 98060085249.jpg [2026] => 98090.jpg [1162] => 9809560703120639.jpg [1223] => 981300_Fler_-_Neue_deutsche_Welle-DE-2005-GRT-Cover.jpg [1198] => 98190.jpg [1647] => 9819sylvester128.gif [2245] => 98280.jpg [2347] => 9831Untitled-1.gif [938] => 98420.jpg [264] => 98460.jpg [996] => 984Russian.Institute.7.[Spanish].DVD.XviD.MP3.XXX.-.[WwW.TorrentesX.CoM].jpg [1153]

a link do obrazka wygląda tak

http://moja.pl/2156



sad.gif sad.gif
Void
Jeśli używasz kodu Matixa to jest tam drobny błąd (zgubiony znak _ w nazwie stałej).
Zamiast
  1. <?php
  2. $sRandom = array_rand($sDir, ILEFOTEK);
  3. ?>
powinno być
  1. <?php
  2. $sRandom = array_rand($sDir, ILE_FOTEK);
  3. ?>
byczek
ten błąd skorygowałem bo go widziałem i dalej to samo smile.gif
abc667
  1. <?
  2. define ('DIR', 'twojkatalog/'); // wybierz swoj katalog
  3. define ('ILE_FOTEK', '5'); // ile fotek ma byc wylosowanych
  4.  
  5. $sDir = scandir(DIR, 0);
  6.  
  7. print_r($sDir); // zwroci pliki jako array.
  8.  
  9. $sRandom = array_rand($sDir, ILE_FOTEK);
  10.  
  11.  
  12. for($i=0;$i<count($sRandom);$i++)
  13. {
  14. echo '<img src="'.$sDir[$sRandom[$i]].'"/><br/>';
  15. }
  16.  
  17. ?>
byczek
Mam inny kod ale on wyswietla tylko jedną fote sad.gif jak zrobic aby wyświetlało ich z 5 jedna koło drugiej ?

Oto ten Kod
  1. <?php
  2. $kat = "sciezka/do/folderu/";
  3. $dir = opendir($kat);
  4. while ($plik = readdir($dir)) {
  5. $pliki[] = $plik;
  6. }
  7. $ilosc = count($pliki)-2;
  8.  
  9. $ktore = (rand() % $ilosc);
  10. $ktore+=2;
  11.  
  12. $plop = explode(".",$pliki[$ktore]);
  13.  
  14. if ($plop[1]=="txt") {
  15. $otw = $kat . $pliki[$ktore];
  16. $pop= fopen($otw, "r");
  17. $linia = fgets($pop,1024);
  18. $liniad = fgets($pop,1024);
  19. echo "<img src="" . $linia . "" border="0">";
  20. fclose($pop);
  21. }
  22. else
  23. {
  24. echo "<img src="" . $kat . $pliki[$ktore] . "" border="0">";
  25. }
  26. ?>
Void
  1. <?php
  2. $dirPath = './images'; // katalog ze zdjęciami
  3. $pictureNum = 5; // liczba losowo wybieranych zdjęć
  4.  
  5. $hDir = opendir($dirPath);
  6. $arrFiles = array();
  7.  
  8. while ($file = readdir($hDir)) {
  9. if ( ($file != '.') && ($file != '..') ) {
  10. $arrFiles[] = $file;
  11. }
  12. }
  13.  
  14. $randomFiles = array_rand($arrFiles, $pictureNum);
  15.  
  16. foreach ($randomFiles as $key=>$value) {
  17. echo '<img src="' . $value . '" />';
  18. }
  19. ?>

pisane na szybko, niestety nie mam teraz czasu sprawdzić czy działa, ale powinno smile.gif
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.