login  Naam:   Wachtwoord: 
Registreer je!
Scripts > PHP > Foto gallerijen > Randomimage (met extensiecontrole)


Reacties op het script Randomimage (met extensiecontrole)

Offline  Gerard
Gepost op: 29 augustus 2006 - 07:31
Ouwe rakker



Maak er eens een functie van 

Offline  Dark_Paul
Gepost op: 29 augustus 2006 - 08:34
PHP ver gevorderde



okej, zal ik doen 
ik zal 'm ietsje uitbreiden, ik ga er gelijk een grootte-limiet aanhangen. zodat je de maximale hoogte en breedte kan toevoegen. als ie te breed is, kort ie 'm in ;)

Offline  nevsehirlim
Gepost op: 08 augustus 2007 - 22:32
Nieuw lid



Hallo,

heb een vraagje ik heb dit script gebruikt alleen er staat:
"Map kon niet worden geopend"

misschien kan je ff controleren wat ik fout heb gedaan ik ben nog een beginnner

link : http://www.caliskasabasi.eu/random.txt

alvast bedankt

Offline  Dark_Paul
Gepost op: 09 augustus 2007 - 10:44
PHP ver gevorderde



  1. $handle = opendir($uploads)

Moet zijn:
  1. $handle = opendir($map)

Foutje van mijn kant, ff herstellen.

Edit: ik zag dat het in mijn script niet was (kon me dat ook niet voorstellen, anders was-ie niet door de keuring gekomen). In de functie moet je dus niets aan de variabelen veranderen, die moet je dmv. de parameters doorgeven.

Offline  anton
Gepost op: 06 december 2010 - 18:44
Lid



ff nn vraagje, ik ben niet zo zeker over iets, ik zou dit graag gebruiken voor 3 random images weer te geven, alledrie verschillend van elkaar, moet ik dan iets toevoegen van dat het random nummer niet gelijk mag zijn aan het eerste random nummer?

Groetjes

Anton

Offline  anton
Gepost op: 08 december 2010 - 00:23
Lid



Deze functie is zeer goed van pas gekomen!
Aangezien ik persoonlijk 3 verschillende random afbeeldingen nodig had, heb ik de functie ook wat uitgebreider gemaakt. Ik hoop dat hij van pas komt, en kritiek, verbeteringen of foutjes mogen altijd gemeld worden!

  1. <?php
  2. function RandImg($map, $max_size, $num) {
  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 = array();
  25. $number = array();
  26. while(count($number) < $num)//het aantal VERSCHILLENDE foto's
  27. {
  28. $r = mt_rand(0,($max-1));
  29. if(!in_array($r,$number))//Als het nummer niet reeds gekozen is
  30. {
  31. $number[] = $r;
  32. }
  33. } //kies een aantal verschillende array-nummers tussen 0 en het aantal bestanden minus 1
  34. foreach($number as $value)
  35. {
  36. $dimensions = getimagesize($map.'/'.$a_bestanden[$value]); //haal afmetingen op
  37. $width = $dimensions[0];
  38. $height = $dimensions[1];
  39.  
  40. if ($width > $max_size) { // verander $width in $height voor de maximale hoogte, en vice versa
  41. $width = $max_size; // wordt aangepast naar maximale grootte
  42. }
  43.  
  44. $foto[] = '<img src="'.$map.'/'.$a_bestanden[$value].'" alt="'.$a_bestanden[$value].'" width="'.$width.'" />'; //de uitgekozen foto
  45. }
  46. return $foto; //return de foto met html-tag
  47. }?>


de aanroeping is wellicht ook anders:
  1. list($foto1, $foto2, $foto3, ...) = randImg($map, $max_size, $num);
  2. echo $foto1;
  3. echo $foto2;
  4. echo $foto3;

het aantal elementen in de list moet gelijk zijn aan de variabele $num.
Je kan de foto's weergeven op elke plek van de pagina.

MVG
Anton Vandeghinste


Enkel aanvullende informatie, vragen en antwoorden op vragen zijn welkom.
 
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.054s