login  Naam:   Wachtwoord: 
Registreer je!
 Forum

random foto's uit nieuwste map

Offline newwolf - 14/05/2008 22:46 (laatste wijziging 14/05/2008 22:54)
Avatar van newwolfNieuw lid Hee mensen,

Ik heb een script dat random foto's uit een map haalt maar nu wil ik eigenlijk dat deze steeds uit de nieuwste map van m'n fotoalbum worden gehaald.

Wie kan mij helpen ?!?!?

Dit is het script.

  1. <?
  2. $map = "./images/begin/"; // De map van de plaatjes een . voor dezelfde map als waar dit bestand staat.
  3.  
  4. $dir = opendir($map);
  5. // Haal de gegevens uit dir
  6. while(false !== ($file = readdir($dir)))
  7. {
  8. if(($file !== ".") && ($file !== ".."))
  9. {
  10. list($filename, $ext) = explode(".", $file);
  11. $ext = strtolower($ext);
  12. if(($ext == "jpg") || ($ext == "png") || ($ext == "gif"))
  13. {
  14. $afbeelding[] = $file;
  15. }
  16. }
  17. }
  18. closedir($dir);
  19.  
  20. // Telt aantal afbeeldingen in map en maakt een random getal uit dat aantal.
  21. $aantal = count($afbeelding) - 1;
  22. $rand = mt_rand(0, $aantal);
  23. echo "<img src=\"".$map . $afbeelding[$rand]."\">";
  24. ?>

6 antwoorden

Gesponsorde links
Offline Martijn - 14/05/2008 23:06
Avatar van Martijn Crew PHP wat ik denk dat je moet doen, is in elke map bestanden een datum.txt zetten, met daarin alleen maar de datum dat de map is aangemaakt

dan bij elke map die ie doorleest kijkt ie daarnaar, en zet ie de meeste recente neer.
Weet niet of er iets simpelers is, maar dit lijkt me te doen
Offline Stijn - 15/05/2008 00:30
Avatar van Stijn PHP expert Geef de mappen in je fotoalbum als naam de UNIX_TIMESTAMP (PHP.net: time). Daarna kan je een random foto nemen met je script hierboven en de map selecteren doe je dan zo:

  1. $dir = scandir('./fotoalbum/' , 1);
  2. $map = $dir[0];
Offline Grayen - 15/05/2008 11:24
Avatar van Grayen PHP ver gevorderde Waarom handmatig het gaan oplossen als je het ook gewoon met PHP kan doen. Doormiddel van PHP.net: filemtime

  1. <?php
  2. $map = './images/';
  3. $mappen = array();
  4. $laatst_gemaakt = 0;
  5. $laatste_gemaakte_dir = null;
  6. $dir = opendir($map);
  7. while(false !== ($file = readdir($dir)))
  8. {
  9. if(($file !== ".") && ($file !== ".."))
  10. {
  11. if (is_dir($file))
  12. {
  13. $gemaakt = filemtime($map.$file);
  14. if ($gemaakt > $laatst_gemaakt)
  15. {
  16. $laatst_gemaakt = $gemaakt;
  17. $laatste_gemaakte_dir = $map.$file;
  18. }
  19. }
  20. }
  21. }
  22. closedir($dir);
  23.  
  24. // Als er een map aanwezig is.
  25. if ($laatste_gemaakte_dir === null)
  26. {
  27. $afbeelding = array();
  28. $dir = opendir($laatste_gemaakte_dir);
  29. // Haal de gegevens uit dir
  30. while(false !== ($file = readdir($dir)))
  31. {
  32. if(($file !== ".") && ($file !== ".."))
  33. {
  34. list($filename, $ext) = explode(".", $file);
  35. $ext = strtolower($ext);
  36. if(($ext == "jpg") || ($ext == "png") || ($ext == "gif"))
  37. {
  38. $afbeelding[] = $file;
  39. }
  40. }
  41. }
  42. closedir($dir);
  43. echo '<img src="'.$map . $afbeelding[array_rand($afbeelding)].'">';
  44. }
  45. ?>
Offline newwolf - 19/05/2008 23:14
Avatar van newwolf Nieuw lid Hee helemaal super dat er iemand reactie op geeft.
Kon niet eerder reageren jammer genoeg, maar goed.

Krijg nog al een fout op mijn pagina.

gebruik de code als hier boven onaangepast.
http://www.demafkezen.nl/test.php

Zou het echt super vinden als iemand er toch iets op weet
Offline Grayen - 20/05/2008 12:28
Avatar van Grayen PHP ver gevorderde controleer wat de waarde van $laatste_gemaakte_dir is door var_dump($laatste_gemaakte_dir); aan te roepen. De map kan niet worden geopend, dus de map naam zal wel fout zijn.

Ik zie al een fout van mijzelf in regel 25, wat bijna zeker weten ook de reden van de foutmelding is.

  1. if ($laatste_gemaakte_dir === null)

=>

  1. if ($laatste_gemaakte_dir !== null)
Offline newwolf - 22/05/2008 13:08
Avatar van newwolf Nieuw lid Heb het aangepast en inderdaad de fout meldingen zijn weg maar heb toch nog echt geen plaatjes op het beeld staan en d'r zijn echt met mppen in die directory met daar in foto's.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.258s