[php] Array durchsuchen im Dirlisting

quicksilver

Lt. Junior Grade
Registriert
Jan. 2004
Beiträge
363
Ich habe ein verzeichnislisting mit opendir und readdir gemacht und ich möchte nun bestimmte dateiendungen aus einem Array auslesen und mit dem inhalt des verzeichnisses vergleich und wenn die Endung passt soll er was bestimmtest machen. Aber irgendwie zeigt er es nicht an.

PHP:
$picfiles = array(".jpg",".gif",".bmp",".png");

if ($dirname = opendir(".")) {
  while ($filename = readdir($dirname)) {
	if (in_array($filename,$picfiles)) 
{
echo "[img] <A HREF=\"".$filename."\">".$filename."</A> 
<a href=\"". $_SERVER['PHP_SELF'] ."?datei=".$filename."&dl=ok\"><font color=\"#00FF00\">Download</font></a> ";
echo "<a href=\"". $_SERVER['PHP_SELF'] ."?datei=".$filename."&del=ok\"><font color=\"#FF0000\">löschen</font></a><br>";
}
  
  }
  closedir($dirname);
}
 
Hi,

Ich bin dein Script jetzt mehrfach durchgegangen und hab einige Dinger gefunden.

Zum einen kann er $dirname nicht richtig als TRUE verifizieren, zumindest bei mir nicht, weshalb ich das mal getrennt voneinander gemacht habe.

Dann bekommst du in $filename nur einen eindiemensionalen Array, mit allen Dateinamen inklusive Endungen. Die Endungen müssen dann erstmal heraus geholt werden zum vergleich.
Dann ist bei in_array der Zweite eintrag der Array und der erste Parameter der Suchstring.

Hier ist die funktionierende Fassung:
PHP:
$picfiles = array(".jpg",".gif",".bmp",".png");
$dirname = opendir(".");
if ($dirname)
{
	while ($filename = readdir($dirname))
	{
		$ext = strrchr($filename, '.' );

		if(in_array($ext,$picfiles))
		{
			echo "[img] <A HREF=\"".$filename."\">".$filename."</A> <a href=\"". $_SERVER['PHP_SELF'] ."?datei=".$filename."&dl=ok\"><font color=\"#00FF00\">Download</font></a> ";
			echo "<a href=\"". $_SERVER['PHP_SELF'] ."?datei=".$filename."&del=ok\"><font color=\"#FF0000\">löschen</font></a><br>";
		}
	}
	closedir($dirname);
}
 
Danke habe es nun aber so gelöst :)

PHP:
$picfiles = array("jpg","gif","bmp","png");
// Bilder
$endung = pathinfo($filename);
if (in_array($endung["extension"],$picfiles)) 
{
echo"<TR>";
echo "<TD>[img]</TD>";
echo "<TD><A HREF=\"".$filename."\">".$filename."</A></TD>";
echo "<TD>". size($filename) ."</TD>";
echo "<TD><a href=\"". $_SERVER['PHP_SELF'] ."?datei=".$filename."&del=ok\"><font color=\"#FF0000\">löschen</font></a></TD>";
echo"</TR>";
$count++;
}
 
Zurück
Oben