Avatar billede spidr Nybegynder
19. januar 2005 - 09:40 Der er 14 kommentarer og
1 løsning

Kun hente billed filer

Jeg bruger følgende kode til at hente billeder i mappen hvor filen ligger og skrive dem ud på en side. Problemet med den er at den også skrive filen selv med :S
Så det første billed hedder index.php.

Jeg ville høre om nogen af jer sådan lige hurtigt kunne se hvordan jeg gør så scriptet ignorerer alle andre filer end jpg, gif og JPG?


<?php

#Indstillinger

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

$sumcount = 1;

$imgwidth = 100; // Billedets bredde

$imgheight = 100; // Bileddets højde

$mappe = "."; // Mappen med billeder

$pr_side = 12; // 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) {

    if ($fil != "." && $fil != ".." && !is_dir($mappe."/".$fil)) {

        $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("1","", $text);
$text = str_replace("2","", $text);
$text = str_replace("3","", $text);
$text = str_replace("4","", $text);
$text = str_replace("5","", $text);
$text = str_replace("6","", $text);
$text = str_replace("7","", $text);
$text = str_replace("8","", $text);
$text = str_replace("9","", $text);
$text = str_replace("0","", $text);
$text = str_replace(".jpg","", $text);
$text = str_replace(".gif","", $text);
$text = str_replace(".JPG","", $text);


    echo "<td><table><tr><td><a href=\"$mappe/$billeder[$i]\" target=_blank><img src=\"$mappe/small/$billeder[$i]\" border=\"0\" width=\"100\" height=\"100\"><br>$text</td></a></tr></table></td>";

    if ($sumcount == $sum) {

        $sumcount = 0;

        echo "</tr><tr>";

    }

    $sumcount++;

    $i++;

}

?></tr></table><br>

Shift page: <?php

#Udskriver frem og tilbage links

if ($offset >= $pr_side) {

    $forrige = $offset-$pr_side;

    echo "<a href=\"?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='$PHP_SELF?offset=$x'>".floor($x/$pr_side)."</a>  ";
}

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

    $naeste = $offset+$pr_side;

    echo " <a href=\"?offset=$naeste\"> Next </a>";

}

?>
Avatar billede phrozia Juniormester
19. januar 2005 - 09:43 #1
($fil != "." && $fil != ".." && !is_dir($mappe."/".$fil))

($fil != "." && $fil != ".." && $fil != "index.php" && !is_dir($mappe."/".$fil))

Nu tager den ikke index.php heller... men man bør nok lave det lidt smartere så man ikke skal definere alle uønskede filer...
Avatar billede spidr Nybegynder
19. januar 2005 - 09:46 #2
Hmm ja, det der hjaelper jo kun lige med den ene fil.
Avatar billede phrozia Juniormester
19. januar 2005 - 09:52 #3
Jep... Hmm..

Med
$efil = explode(".",$fil);
får du filen delt efter .'et... dvs... at på $efile[1] har du extensionen...


($fil != "." && $fil != ".." && !is_dir($mappe."/".$fil) && ($efile[1] == "jpg"))

Hvad siger den til det?
Avatar billede spidr Nybegynder
19. januar 2005 - 09:59 #4
Den siger:

Warning: sort() expects parameter 1 to be array, null given in /usr/local/www/data-dist/inkdesigncom/pics/6230/index.php on line 78
Avatar billede spidr Nybegynder
19. januar 2005 - 09:59 #5
Warning: array_reverse(): The argument should be an array in /usr/local/www/data-dist/inkdesigncom/pics/6230/index.php on line 79

lige nede under
Avatar billede phrozia Juniormester
19. januar 2005 - 10:07 #6
hmm.. har du set at jeg er kommen til at skrive $efile[1] == "jpg" i stedet for $efil[1] == "jpg")) ? Ved ikke om det er det?
Avatar billede spidr Nybegynder
19. januar 2005 - 10:07 #7
Det virker sku, sku bare lige aendre lidt :D
Túsind tak :D
Avatar billede spidr Nybegynder
19. januar 2005 - 10:08 #8
Ja også det, men du havde også sat nogle maerkelige ( og ) :D
Avatar billede spidr Nybegynder
19. januar 2005 - 10:09 #9
hvad så med gif filer og JPG filer?
Avatar billede phrozia Juniormester
19. januar 2005 - 10:11 #10
Ah.. ok.. :)

Så tilføjer du jo bare til if'en?

&& $efile[1] == "gif" && $efile[1] == "jpg"

( $fil != "." && $fil != ".." && !is_dir($mappe."/".$fil) burde vel egentlig være ligemeget nu?)
Avatar billede spidr Nybegynder
19. januar 2005 - 10:12 #11
fandt ud af det, lavede bare nogle elseif hehe ;)
Avatar billede spidr Nybegynder
19. januar 2005 - 10:12 #12
hmmm, men betyder && ikke at begge skal vaere opfyldt?
Avatar billede phrozia Juniormester
19. januar 2005 - 10:14 #13
jo.. det skal så vær OR's... || eller hvad det nu er i tegn.. :)

if($efile[1] == "gif" OR $efile[1] == "jpg")
Avatar billede spidr Nybegynder
19. januar 2005 - 10:17 #14
nå ja det var sådan det var ;)
Tak for det mester :D smider du et svar :D
Avatar billede phrozia Juniormester
19. januar 2005 - 10:18 #15
Så lidt :)
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