Avatar billede rold Nybegynder
02. september 2003 - 11:27 Der er 7 kommentarer

Henter billede fra mappe og sorterer

Hey dér

Jeg forestiller mig at dette er relativt simpelt, men det kan jo være jeg bliver klogere :-)
Jeg skal bruge et php-script der henter nogle billeder fra en mappe, og sorterer dem efter navn. I mappen er eks. nogle billeder med navnene 1.jpg, 2.jpg, 3.jpg osv, og scriptet skal så kun hente de billeder med de højeste tal, og sorterer dem med det højeste øverst, eks. 4 stk:

13.jpg
12.jpg
11.jpg
10.jpg

Håber det giver mening.
-Rold
Avatar billede sostack Nybegynder
02. september 2003 - 11:45 #1
<?php
$dh = opendir(".");
WHILE($filer = readdir($dh))
{
    if($filer != "." && $filer != "..")
    {
        $filnavn = explode(".", $filer);
        $filarray[] = $filnavn[0];
    }
}
close($dh);
$filarray = rsort($filarray);
for($i = 0; $i < 4; $i++)
{
    echo $filarray[$i] . "<br />\n";
}
?>

//sostack
Avatar billede rold Nybegynder
02. september 2003 - 13:36 #2
>> sostack
Når det kommer til PHP er jeg nok ikke den skarpeste kniv i skuffen, så hvis du kunne forklare lidt om hvor jeg skal tilføje/ændre for at få det til at virke?
-Rold
Avatar billede rold Nybegynder
02. september 2003 - 13:39 #3
-Jeg får følgende fejlmeddelse:
Fatal error: Call to undefined function: close()
Avatar billede sostack Nybegynder
02. september 2003 - 13:45 #4
<?php
$mappe = "." //den mappe du vil hente fra
$dh = opendir($mappe);
WHILE($filer = readdir($dh)) //løber hele mappen igennem
{
    if($filer != "." && $filer != "..") // springer over rod og overmappe
    {
        $filnavn = explode(".", $filer); //deler filnavnet ved '.'
        $filarray[] = $filnavn[0]; // lægger filnavnene i et array
    }
}
closedir($dh);
$filarray = rsort($filarray); //sorterer arrayet fra størst til mindst
for($i = 0; $i < 4; $i++) //henter de 4 første filnavne i arrayet
{
    echo $filarray[$i] . "<br />\n"; //skriver navnene på hver sin linie
    //fjern // fra linien nedenunder, hvis du vil have vist billederne.
    //echo "<img src='" . $mappe . "/" . $filarray[$i] . ".jpg><br />\n";
}
?>

//sostack
//sostack
Avatar billede sostack Nybegynder
02. september 2003 - 13:48 #5
//echo "<img src='" . $mappe . "/" . $filarray[$i] . ".jpg><br />\n";
skal lige være:
//echo "<img src='" . $mappe . "/" . $filarray[$i] . ".jpg'><br />\n";

//sostack
Avatar billede rold Nybegynder
02. september 2003 - 14:02 #6
Nu siger den:

Parse error: parse error, unexpected T_VARIABLE on line 11
Avatar billede sostack Nybegynder
04. september 2003 - 13:08 #7
Denne virker 100% her hos mig:
<?php
$mappe = "."; //den mappe du vil hente fra
$dh = opendir($mappe);
WHILE($filer = readdir($dh)) //løber hele mappen igennem
{
    if($filer != "." && $filer != "..") // springer over rod og overmappe
    {
        $filnavn = explode(".", $filer); //deler filnavnet ved '.'
        if($filnavn[1] == "jpg") //hvis det er jpg billeder
        {
        $filarray[] = $filnavn[0]; // lægger filnavnene i et array
    }
    }
}
closedir($dh);
rsort($filarray); //sorterer arrayet fra størst til mindst
reset($filarray); //spol tilbage i arrayet
for($i = 0; $i < 4; $i++) //henter de 4 første filnavne i arrayet
{
    echo $filarray[$i] . "<br />\n"; //skriver navnene på hver sin linie
    //fjern // fra linien nedenunder, hvis du vil have vist billederne.
    echo "<img src='" . $mappe . "/" . $filarray[$i] . ".jpg'><br />\n";
}
?>

//sostack
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester