Auteur: Dark_Paul - 28 augustus 2006 - 21:10 - Gekeurd door: Joel - Hits: 8405 - 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.
<?php
function RandImg($map, $max_size) {
$a_bestanden = array(); // hier komen alle bestanden in te staan
$bestandstypes = array('gif','jpg','jpeg','png','bmp'); //toegestane bestandstypes
for ($i=0; $i < count($bestandstypes); $i++) { //alle bestandstypes in kleine letters
$types[] = strtolower($bestandstypes[$i]); // maak van alle bestandstypes in de array kleine letters
}
if ($handle = opendir($map)) { //open de map
while (false !== ($bestand = readdir($handle))) { //haal bestanden op
$bestand_explode = explode('.', (strtolower($bestand)));
$lengte = (count($bestand_explode)-1);
$bestand_ext = $bestand_explode[$lengte]; // dit is de bestandsextensie
if (in_array($bestand_ext, $types)) { // controleer of het bestandstype toegestaan is
$a_bestanden[] = $bestand; // voeg het bestand toe aan de bestanden-array
}
}
closedir($handle);
}
else {
echo "Map kon niet worden geopend";
}
$max = count($a_bestanden); // het aantal bestanden
$foto = rand(0, ($max-1)); //kies een array-nummer tussen 0 en het aantal bestanden minus 1
$dimensions = getimagesize($map.'/'.$a_bestanden[$foto]); //haal afmetingen op
$width = $dimensions[0];
$height = $dimensions[1];
if ($width > $max_size) { // verander $width in $height voor de maximale hoogte, en vice versa
$width = $max_size; // wordt aangepast naar maximale grootte
}
$ret = '<img src="'.$map.'/'.$a_bestanden[$foto].'" alt="'.$a_bestanden[$foto].'" width="'.$width.'" />'; //de uitgekozen foto
return ($ret); //return de foto met html-tag
}?>
<?php
function RandImg($map,$max_size){
$a_bestanden=array();// hier komen alle bestanden in te staan