Alle Dateien in ein Ordner filtern
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
-
hi,
ich hab ne kleinen code geschnipselt und beim googlen bin ich auf sowas gestoßen:
if($files != "image/gif" && $files != "image/jpg" && $files != "image/gif" && $files != "image/pjpeg")
nun mein Code sieht so aus:
$path = 'bla/'; $open = opendir($path); while($files = readdir($open)){ if($files != '.' && $files != '..') { echo '<img src="'.$path.$files.'" height="100" width="100"> '; } } } closedir($open);
Wie man sieht wird der pics/ Ordner geöffnet und ausgelesen. Danach soll es mit "img src" die Dateien da drinne anzeigen. Aber in diesen Ordner ist ein Uploadscript also 2 weitere .php Dateien. Die versucht er auch anzuzeigen.
Ich hatte das vor "echo" stehen das mit "image/gif" usw. aber dann zeigt es keine Bilder an.
ich will nciht das mit dateiendungen haben. Weil es gibt welche die Dateien hochladen die Dateiendungen einfach anders machen manchmal Großschreibung wie "jPEG" oder sowas.
Also, ist das möglich das mit image/jpg usw. oder ist das in prinzip das gleiche wie Dateiendungen auslesen?
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Wie wärs, wenn du einfach *.php-Dateien ausgrenzt, anstatt den Dateityp abzufragen. Wenn du nur die zwei PHP-Dateien hast sollte das so gehen:
if($files != '.' && $files != '..' && !preg_match('/.php$/i',$files))
-
auch ne idee.. aber es kann ja sein das der user oder mein kumpel (wenn ich es private mache) andere dateien hochladen.
if($files != '.' && $files != '..' && preg_match('/.jpg$/i',$files))
ist es so richtig wenn ich umgekehrt machen möchte? -
Naja, so erkennst du nur *.jpg *.JPG *.Jpg ...
aber nicht *.jpeg *.JPEG *.Jpeg ...
Aber die Idee ist nicht schlecht. Du könntest das E so reinbekommen:
if($files != '.' && $files != '..' && preg_match('/.jpe?g$/i',$files))
Beitrag geändert: 27.7.2007 8:40:50 von sandrock-jonas -
Ich hab kleines Problem.
Ordner:
html/pspics/user/
html/pspics/user/bilo
html/pspics/user/bla
html/pspics/user/blaa
in user/ ist der index.php wo dieser script drinne ist.
1.
Wie kann ich machen das er in user/ alle anderen ordner durchsucht?
2. Und er soll Ordnername merken. Dann kann ich beispiel "hochgeladen von $ordner" oder so machen. Ich hab gegooglet aber irgdendwie steht da immer von löschen. -
<?php $arrBilder = array(); $handle = opendir('user'); while ($file = readdir($handle)) { if (is_dir('user/'.$file) && '.' != $file && '..' != $file) { $arrBilder[$file] = array(); $handle2 = opendir('user/'.$file); while ($file2 = readdir($handle2)) { if($file2 != '.' && $file2 != '..' && preg_match('/.jpe?g$/i',$file2)) { $arrBilder[$file][] = $file2; } } } } print_r($arrBilder); ?>
So in der Art könntest du das machen.
Das Array $arrBilder ist dann so aufgebaut:
<?php $arrBilder = array( 'bilo' => array('bild1.jpg','bild2.jpg'), 'bla' => array('blub.JPEG','blub2.JPG'), //... ); ?>
edit:
Der Code ist nur ein Beispiel, ich habe ihn nicht getestet
Beitrag geändert: 27.7.2007 17:13:56 von sandrock-jonas -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage