JPG-Dateinen in Array() laden?!

unrealzero_php

Erfahrenes Mitglied
Hallo zusammen

hab mir ein kleines Script gebastelt welches alle JPG-Dateien aus einem Verzeichnis auslesen soll. Anschliessend sollen alle JPG-Dateien in einen Array gespeichert werden.

Leider komm ich nicht weiter, sitz auf der Leitung:
PHP:
$pfad = "img_head/";
$handle = opendir("img_head/");
$datei = array();
while ($file = readdir($handle))
{
if($file != "." && $file != "..")
{
$img_type = $_FILES['file']['type'];
 
if($img_type == "image/pjpeg" || $img_type == "image/jpeg")
{
$datei[] = $file;
}
}
}
 
Ääähm, die Variable $_FILES gilt ausschließlich für Datei-Uploads (zu dem Zeitpunkt, als sie hochgeladen wurden)

Probier mal die Funktion getimagesize zum Prüfen, ob es sich um ein Bild handelt, aus.

Mamphil
 
Mamphil hat gesagt.:
Ääähm, die Variable $_FILES gilt ausschließlich für Datei-Uploads (zu dem Zeitpunkt, als sie hochgeladen wurden)

Probier mal die Funktion getimagesize zum Prüfen, ob es sich um ein Bild handelt, aus.

Mamphil

Hab ich bereits versucht, nur hab ich Probleme wenn auch PHP oder TXT-Datein im Verzeichnis liegen.
 
Probier mal Folgendes:
PHP:
<?php

	$datei = array();
	$handle = opendir('.');
	while( $file = readdir($handle) ) {
		if( $file == '.' || $file == '..' ) {
			continue;
		}
		if( is_file($file) && ($tmp = getimagesize($file)) && (bool)preg_match('/^image\/p?jpeg$/', $tmp['mime']) ) {
			$datei[] = $file;
		}
	}

?>
 
Zuletzt bearbeitet:
Gumbo hat gesagt.:
Probier mal Folgendes:
PHP:
<?php
 
	$datei = array();
	$handle = opendir('.');
	while( $file = readdir($handle) ) {
		if( $file == '.' || $file == '..' ) {
			continue;
		}
		if( is_file($file) && ($tmp = getimagesize($file)) && (bool)preg_match('/^image\/p?jpeg$/', $tmp['mime']) ) {
			$datei[] = $file;
		}
	}
 
?>

Hab noch ne andere Lösung gefunden, was meint ihr dazu:
PHP:
$datei = array();
foreach (glob("img_head/*.jpg") as $filename)
{
$datei[] = $filename;
}
 
Hi!

unrealzero_php hat gesagt.:
Hab ich bereits versucht, nur hab ich Probleme wenn auch PHP oder TXT-Datein im Verzeichnis liegen.
Das kann eigentlich nicht sein. Die Funktion getimagesize gibt dir ein Array mit diversen Informationen. Im dritten Schlüssel ([2]) steht "ein Flag je nach Grafik-Typ (1 = GIF, 2 = JPG, 3 = PNG, SWF = 4)". Du kannst also einfach überprüfen, ob es sich um ein JPG handelt:
PHP:
$imginfo = getimagesize('txtfile.txt');
if ($imginfo[2] == 2)
  echo 'Die Datei ist ein JPG';
else
  echo 'Die Datei ist kein JPG';

Ich sehe da kein Problem...

Mamphil
 
Zurück