Dateiauflistung ohne . und ..
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
aktuelle verzeichnis
anzeigen
ausgeben
befinden
beitrag
datei
endung
entry
extension
geschriebene endungen
gleicher ordner
hilf
hundert
interne funktion
letzte datei
ordner
punkten
versuch
verzeichnis
vielen dank
-
Hallo, ich habe mir aus dem Internet ein script gesucht, dass alle Dateien aus einem Verzeichnis anzeigen soll.
Leider zeigt mir das Script ?ber den Dateien immer
folgendes an:
.
..
Wie bekomme ich diese Punkte weg?
Hier das Script:
$verz=opendir ('../ausgaben'); while($file = readdir ($verz)) { echo $file. "<br/>"; } closedir($verz);
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Indem du sie ignorierst:
$verz=opendir ('../ausgaben');
while($file = readdir ($verz)) {
if('..' == $file || '.' == $file) continue;
echo $file. "<br/>";
}
closedir($verz);
Es handelt sich ?brigens dabei um eine Art Hilfs-Verzeichnisse, die das aktuelle Verzeichnis (".") und das ?bergeordnete Verzeichnis ("..") darstellen. -
versuchs ma mit:
$verz=opendir ('../ausgaben/'); while($file = readdir ($verz)) if (!is_dir($file)) echo $file. "<br/>"; closedir($verz);
das oben geht auch, macht aber nur die "ordnernamen" weg ..
also mit dem script oben bekommst du auch andere ordner ausgegben, (ausser gleicher ordner (".") und eine ordnerebene hoch ("..")); mit meinem halt nur die dateien, die sich EVTL in dem ordner ausgaben befinden...
Beitrag ge?ndert am 31.03.2006 18:00 von masterbene
Beitrag ge?ndert am 31.03.2006 18:00 von masterbene -
Vielen Dank, jetzt habe ich dazu noch eine Frage:
Wie kann ich ausw?hlen, welche Dateitypen angezeigt werden?
z.b.: es sollen nur Dateien mit der endung *.jpg *.gif angezeigt werden?
(Habe das erste Script genommen) -
F?r *.jpg k?nnte das so aussehen:
$verz=opendir ('../ausgaben/'); while($file = readdir ($verz)) if (!is_dir($file)) { if (eregi('jpg',$file)) { echo $file. "<br/>"; } } closedir($verz);
-
Heisst das, dass ich bei jpg und gif dies schreiben muss?
$verz=opendir ('../ausgaben/'); while($file = readdir ($verz)) if (!is_dir($file)) { if (eregi('jpg, gif',$file)) { echo $file. "<br/>"; } } closedir($verz);
Beitrag ge?ndert am 31.03.2006 18:22 von speedtouch92 -
eregi('jpg, gif',$file) wuerde z.B. in nem string der so aussaehe anschlagen: FILE1.jpg, gif
das suchst du aber net ..
du schst eins, dass dann anschlaegt:
file1.jpg ODER bei file1.gif;
also musst du schreiben:
if (eregi('jpg',$file) || eregi('gif',$file))
aallsssooo:
$verz=opendir ('../ausgaben/'); while($file = readdir ($verz)) if (!is_dir($file)) { if (eregi('jpg',$file) || eregi('gif',$file)) { echo $file. "<br/>"; } } closedir($verz);
-
Ah, danke, und wie kann ich NUR Ordenr anzeigen?
(Au?er . und ..) -
speedtouch92 schrieb:
Ah, danke, und wie kann ich NUR Ordenr anzeigen?
(Au?er . und ..)
Das entsprechende Script dazu sieht wie folgt aus:
$verz=opendir ('../ausgaben/'); while($file = readdir ($verz)) { // Die if-Abfrage soll ?berpr?fen, // ob es sich um einen Ordner handelt. // Wenn is_dir(), true zur?ckgibt, soll // der Ordnername angezeigt werden. if (is_dir($file) == true) { print("Ordner: ". $file ."<br />"); } } closedir($verz);
-
Hi,
das mit den jpg- und gif-Dateien find ich nicht besonders schlau. Was ist wenn eine Datei jpg.xls heisst? Dann wird diese Datei auch als jpg erkannt.
Besser w?re so (Dateitypen durch die Endung der Datei erkennen):
$dir = "./"; $extensions = array("jpg","gif"); $files = array(); $dh = opendir($dir); while (($filename = readdir($dh)) !== false) { if (!in_array($filename,array(".",".."))) { $extension = end(explode(".",$filename)); if (in_array($extension,$extensions) && is_file($dir . $filename)) $files[] = $dir . $filename; } } closedir($dh); print_r($files);
mfg,
hr
Beitrag ge?ndert am 7.04.2006 02:21 von heavyraptor -
versuchs ma mit:
$verz=opendir ('../ausgaben/'); while($file = readdir ($verz)) if (!is_dir($file)) echo $file. "<br/>"; closedir($verz);
das oben geht auch, macht aber nur die "ordnernamen" weg ..
also mit dem script oben bekommst du auch andere ordner ausgegben, (ausser gleicher ordner (".") und eine ordnerebene hoch ("..")); mit meinem halt nur die dateien, die sich EVTL in dem ordner ausgaben befinden...
Beitrag ge?ndert am 31.03.2006 18:00 von masterbene
Beitrag ge?ndert am 31.03.2006 18:00 von masterbene
Soweit ich wei? sind "." und ".." Verzeichnisse. Es wird jedenfalls true bei "is_dir ()" zur?ckgegeben.
@heavyraptor :
Man kann zum ermitteln der Dateiendung auch einfachc "pathinfo ()" verwenden.
Ist meist wensentlich einfacher.
Sollte auch schneller laufen(, wenn auch nicht sp?rbar ^^), da es eine interne Funktion von PHP ist.
MfG Lucas -
Wie ?blich gibt es in PHP hunderte Wege, ein Ziel zu erreichen. Und da ich anscheinend meistens der einzige bin, der halbwegs mit PCRE klarkommt, muss ich eben auch diesmal wieder die preg_match()-Variante vorstellen:
$tag_list = '/\.(jpg|gif|png|bmp)\Z/i';
$dh = @opendir($dir);
if(FALSE === $dh) die('Verzeichnis jibbet net!');
while($entry = @readdir($dir) ) {
if('.' == $entry || '..' == $entry) continue;
if( is_dir($dir.DIRECTORY_SEPARATOR.$entry) ) continue;
if( !preg_match($tag_list, $entry) ) continue;
// hier g?ltige Dateien einsammeln
// oder ausgeben
printf('%s<br />', $entry);
}
@closedir($dir);
Vorteile gegen?ber den anderen L?sungen:
* es wird nur die letzte Datei-Endung gepr?ft;
* es werden auch gro?geschriebene Endungen (Bsp: "*.JPG") erkannt.
* spart Speicher (gegen?ber explode() )
* ist schneller (gegen?ber ereg_...() )
Beitrag ge?ndert am 7.04.2006 23:39 von alopex -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage