webForumDet fria alternativet

Kontrollera typ av fil..

8 svar · 243 visningar · startad av asp

aspMedlem sedan aug. 2002733 inlägg
#1
<?php
if ($handle = opendir('images')) {
   while (false !== ($file = readdir($handle))) { 
       if ($file != "." && $file != "..") { 
           echo '<img src="images/'.$file.'">';
       } 
   }
   closedir($handle); 
}
?>

Med den koden visas alla filer som finns i mappen images. Nu vill jag kontrollera om filen är en bild eller en mapp. Om det är en bil så läggs den till i strängen sPic, är det en mapp så läggs den till i strängen sFolder.

Någon vänlig själv där ute?

tydalMedlem sedan juni 20034 013 inlägg
#2

Det står i den utmärkta php-manualen under funktionen readdir.

if ($file != "." && $file != ".." && !is_dir($file))

aspMedlem sedan aug. 2002733 inlägg
#3

Men hur kontrollerar man att den är en bild??

tydalMedlem sedan juni 20034 013 inlägg
#4

Då har du en funktion som heter getimagesize.

dr_llMedlem sedan nov. 20046 inlägg
#5
if(getimagesize($temp) !== false )
 echo"Bild";
else
 echo"Ej bild";
aspMedlem sedan aug. 2002733 inlägg
#6
<?php
if ($handle = opendir('images')) {
   while (false !== ($file = readdir($handle))) { 
       if (is_dir($file) !== false) { 
           echo 'BILD!';
       }
       elseif (getimagesize($file) !== false) {
           echo 'MAPP';
       } 
   }
   closedir($handle); 
}
?>

Ger:

BILD!BILD!
Warning: getimagesize(gishen1.gif): failed to open stream: No such file or directory in /home/mackan/public_html/party/index.php on line 21

Warning: getimagesize(apple.jpg): failed to open stream: No such file or directory in /home/mackan/public_html/party/index.php on line 21

Warning: getimagesize(bugg.txt): failed to open stream: No such file or directory in /home/mackan/public_html/party/index.php on line 21

Warning: getimagesize(bg_orange.gif): failed to open stream: No such file or directory in /home/mackan/public_html/party/index.php on line 21

Warning: getimagesize(wm): failed to open stream: No such file or directory in /home/mackan/public_html/party/index.php on line 21
tydalMedlem sedan juni 20034 013 inlägg
#7

Filerna finns inte, så du är förmodligen i fel katalog. Av din kod att döma verkar det som att filerna ligger i katalogen images, så då blir det så här:

getimagesize("images/$file")

aspMedlem sedan aug. 2002733 inlägg
#8

Fungerar inte riktigt som det skall. Resultatet blir:

BILD!
BILD!
MAPP
MAPP

MAPP
BILD!

Med denna kod:

<?php
if ($handle = opendir('images')) {
   while (false !== ($file = readdir($handle))) { 
       if (is_dir("images/$file") !== false) { 
           echo 'BILD!';
       }
       elseif (getimagesize("images/$file") !== false) {
           echo 'MAPP';
       }
           echo '<BR>';
   }
   closedir($handle); 
}
?>
tydalMedlem sedan juni 20034 013 inlägg
#9

is_dir kontrollerar om $file är en katalog.
getimagesize kontrollerar om $file är en bild.

Så, ändra till detta:

<?
  if (is_dir("images/$file"))
    echo("mapp<br>");
  elseif (getimagesize("images/$file")
    echo("bild<br>");
?>
125 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)