Avatar billede spidr Nybegynder
30. januar 2005 - 04:31 Der er 4 kommentarer og
1 løsning

Finde billeder i undermapper

Jeg bruger scriptet nede for til at finde billeder i en mappe og printe det ud, men kan man få det til OGSÅ at finde filer i under mapper? og ignorere mapper med navnet small??


$mappe = strip_tags($mappe);

if (!$mappe) { $mappe = "../pics/Funny Pictures";}

function test_om_billed_dir($dir) {
    $billedextensions = array( ".jpg", ".jpeg", ".gif", ".tiff" );
    $dp = opendir($dir);
    $antal_billeder_fundet = 0;
    while (false !== ($fil = readdir($dp))) {
        if ( in_array( strtolower( substr( $fil, strrpos( $fil, '.' ) ) ),
                                    $billedextensions
                  )          ) {
            $antal_billeder_fundet++;
            if ( $antal_billeder_fundet = 2 ) {
                closedir($dp);
                return true;  // ja det er en mappe med billeder
            }
        }
    }
    closedir($dp);
    return false;    // der blev ikke fundet noget billede
}

if ( test_om_billed_dir($mappe) ) {

$http = $mappe;

$dlSQL = "UPDATE picsGAL SET dl = dl+1 WHERE http = '$http'";



$iptest = mysql_query("select * from picsGAL where http = '$http'");

$testip = mysql_fetch_array($iptest);
$opretip = "insert into picsGAL(http, dl)
                values ('$http', '0')";


if ($testip[http] != $http) {

    mysql_query($opretip) or die (mysql_error());

    mysql_query($dlSQL) or die (mysql_error());

} else {
    mysql_query($dlSQL) or die (mysql_error());

}



print "<table><tr>";

$sum = 3; // Antal billeder ved siden af hinanden

$sumcount = 1;

$imgwidth = 100; // Billedets bredde

$imgheight = 100; // Bileddets højde


$pr_side = 60; // Antal billeder pr. side


if (isset($_GET['offset'])) {

    $offset = $_GET['offset'];

} else {

    $offset = 0;

}

$pics = $offset+$pr_side;

$i = $offset;

# Laver et array med billederne, så vi senere kan sortere dem alfabetisk

$handle = opendir($mappe);

while (($fil = readdir($handle)) !== false) {
$efile = explode(".",$fil);
    if ($fil != "." && $fil != ".." && !is_dir($mappe."/".$fil) && $efile[1] != "php" && $efile[1] != "css" && $efile[1] != "db") {

        $billeder[] = "$fil";

    }

}

closedir($handle);


echo "$i - $pics / ".count($billeder)."<br>";

# Udskriver billederne

sort($billeder);
$billeder = array_reverse($billeder);

while($i < $pics && $billeder[$i] != "") {
$text = $billeder[$i];
$text = str_replace("_"," ", $text);
$text = str_replace(".jpg","", $text);
$text = str_replace(".gif","", $text);
$text = str_replace(".JPG","", $text);


    echo "<td><table><tr><td align=center width=\"150\"><a href=\"http://www.goog.dk/pics/showpic.php?mas=$mappe/$billeder[$i]\" target=_blank><img src=\"$mappe/small/$billeder[$i]\" border=\"0\" width=\"100\"><br>$text</td></a></tr></table></td>";

    if ($sumcount == $sum) {

        $sumcount = 0;

        echo "</tr><tr>";

    }

    $sumcount++;

    $i++;

}

print "</tr></table><br>Shift page: ";

#Udskriver frem og tilbage links

if ($offset >= $pr_side) {

    $forrige = $offset-$pr_side;

    echo "<a href=\"show.php?mappe=$mappe&offset=$forrige\"> Last</a> ";

}

for( $x=0; $x < count($billeder); $x+= $pr_side ) {
    if( $x >= $offset && $x < $offset+$pr_side )
        echo floor($x/$pr_side)."  ";
    else
        echo "<a href=\"show.php?mappe=$mappe&offset=$x\">".floor($x/$pr_side)."</a>  ";
}

if (count($billeder) > $offset+$pr_side) {

    $naeste = $offset+$pr_side;

    echo " <a href=\"show.php?mappe=$mappe&offset=$naeste\"> Next </a>";

}

}
Avatar billede razor Nybegynder
30. januar 2005 - 09:34 #1
Du kan kalde funktionen rekursivt, hvis du med is_dir() kan fastslaa at du har med et katalog at goere.
Avatar billede spidr Nybegynder
30. januar 2005 - 13:15 #2
jeg er ikke helt med?
Avatar billede coderdk Praktikant
30. januar 2005 - 17:16 #3
Det kan være du kan bruge det jeg lige har lavet her: http://www.eksperten.dk/spm/586189
Avatar billede coderdk Praktikant
30. januar 2005 - 17:17 #4
Vrøvl, det var jo her: http://www.eksperten.dk/spm/586188 :)
Avatar billede spidr Nybegynder
16. februar 2005 - 17:31 #5
Lukker den her, jeg havde jo åbenbart lavet 2 naesten ens spørgsmål.
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