Reacties op het script Randomimage (met extensiecontrole)
|
Gepost op: 29 augustus 2006 - 07:31 |
|
|
|
Ouwe rakker
|
Maak er eens een functie van |
|
|
|
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 ;) |
|
|
|
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
|
|
|
|
Gepost op: 09 augustus 2007 - 10:44 |
|
|
|
PHP ver gevorderde
|
$handle = opendir($uploads)
Moet zijn:
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. |
|
|
|
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 |
|
|
|
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!
<?php
function RandImg($map, $max_size, $num) {
$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 = array();
$number = array();
while(count($number) < $num)//het aantal VERSCHILLENDE foto's
{
$r = mt_rand(0,($max-1));
if(!in_array($r,$number))//Als het nummer niet reeds gekozen is
{
$number[] = $r;
}
} //kies een aantal verschillende array-nummers tussen 0 en het aantal bestanden minus 1
foreach($number as $value)
{
$dimensions = getimagesize($map.'/'.$a_bestanden[$value]); //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
}
$foto[] = '<img src="'.$map.'/'.$a_bestanden[$value].'" alt="'.$a_bestanden[$value].'" width="'.$width.'" />'; //de uitgekozen foto
}
return $foto; //return de foto met html-tag
}?>
<?php function RandImg($map, $max_size, $num) { $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 $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 } } } else { echo "Map kon niet worden geopend"; } $max = count($a_bestanden); // het aantal bestanden while(count($number) < $num)//het aantal VERSCHILLENDE foto's { if(!in_array($r,$number))//Als het nummer niet reeds gekozen is { $number[] = $r; } } //kies een aantal verschillende array-nummers tussen 0 en het aantal bestanden minus 1 foreach($number as $value) { $dimensions = getimagesize($map.'/'.$a_bestanden[$value]); //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 } $foto[] = '<img src="'.$map.'/'.$a_bestanden[$value].'" alt="'.$a_bestanden[$value].'" width="'.$width.'" />'; //de uitgekozen foto } return $foto; //return de foto met html-tag }?>
de aanroeping is wellicht ook anders:
list($foto1, $foto2, $foto3, ...) = randImg($map, $max_size, $num);
echo $foto1;
echo $foto2;
echo $foto3;
list($foto1, $foto2, $foto3, ...) = randImg ($map, $max_size, $num);
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. |
|
|
|