login  Naam:   Wachtwoord: 
Registreer je!
 Scripts:

Scripts > PHP > Foto gallerijen > Randomimage (met extensiecontrole)

Randomimage (met extensiecontrole)

Auteur: Dark_Paul - 28 augustus 2006 - 21:10 - Gekeurd door: Joel - Hits: 8366 - Aantal punten: 4.17 (3 stemmen)




Dit script pakt een random image uit je gedefinieërde map. Er wordt gecontroleerd op de bestandsextensie, zodat er zeker alleen maar images worden getoond. In dit script gebeurde dat niet en dat veroorzaakte nogal wat problemen, vandaar dat ik dit script post.
Verander $map in het script door de map waar jij je plaatjes uit wilt ophalen, en verander $bestandstypes om bestandsextensies toe te voegen of te weigeren.
De code is voorzien van commentaar zodat het allemaal duidelijk wordt. Voor informatie over de gebruikte functies verwijs ik je naar www.php.net.
Commentaar en/of toevoegingen zijn uiteraard altijd welkom!

Ik heb nu ook nog toegevoegd dat je een maximale hoogte of breedte op kan geven.
Verander $width in de if-statement op line 35 door $height om een maximale hoogte op te geven.

Code:
  1. <?php
  2. function RandImg($map, $max_size) {
  3. $a_bestanden = array(); // hier komen alle bestanden in te staan
  4. $bestandstypes = array('gif','jpg','jpeg','png','bmp'); //toegestane bestandstypes
  5. for ($i=0; $i < count($bestandstypes); $i++) { //alle bestandstypes in kleine letters
  6. $types[] = strtolower($bestandstypes[$i]); // maak van alle bestandstypes in de array kleine letters
  7. }
  8.  
  9. if ($handle = opendir($map)) { //open de map
  10. while (false !== ($bestand = readdir($handle))) { //haal bestanden op
  11. $bestand_explode = explode('.', (strtolower($bestand)));
  12. $lengte = (count($bestand_explode)-1);
  13. $bestand_ext = $bestand_explode[$lengte]; // dit is de bestandsextensie
  14. if (in_array($bestand_ext, $types)) { // controleer of het bestandstype toegestaan is
  15. $a_bestanden[] = $bestand; // voeg het bestand toe aan de bestanden-array
  16. }
  17. }
  18. closedir($handle);
  19. }
  20. else {
  21. echo "Map kon niet worden geopend";
  22. }
  23. $max = count($a_bestanden); // het aantal bestanden
  24. $foto = rand(0, ($max-1)); //kies een array-nummer tussen 0 en het aantal bestanden minus 1
  25. $dimensions = getimagesize($map.'/'.$a_bestanden[$foto]); //haal afmetingen op
  26. $width = $dimensions[0];
  27. $height = $dimensions[1];
  28.  
  29. if ($width > $max_size) { // verander $width in $height voor de maximale hoogte, en vice versa
  30. $width = $max_size; // wordt aangepast naar maximale grootte
  31. }
  32.  
  33. $ret = '<img src="'.$map.'/'.$a_bestanden[$foto].'" alt="'.$a_bestanden[$foto].'" width="'.$width.'" />'; //de uitgekozen foto
  34. return ($ret); //return de foto met html-tag
  35. }?>


En zo roep je de functie aan (zodat ie ook gelijk wordt getoond):
  1. <?php
  2. echo RandImg('images', 500);
  3. ?>
Download code! Download code (.txt)

 Bekijk een voorbeeld van dit script!
 Stemmen
Niet ingelogd.

 Reacties
Post een reactie
Lees de reacties (6)
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.07s