Verzeichnis-"Punkte" (höhere Ebene) werden mit ausgegeben

matthiasschnueriger

Erfahrenes Mitglied
Ich bin mir fast sicher, dass diese Frage schon mal behandelt wurde, allerdings weiss ich beim besten Willen nicht, nach welchem Begriff ich suchen soll...

Und zwar gebe ich mit PHP alle Dateien eines Verzeichnis aus.
PHP:
if ($handle = opendir('../userdata/'.$id.'/bilder')) {
    while (false !== ($file = readdir($handle))) {
		?>
        <div id="thumbnail"><img src="<? echo '../userdata/'.$id.'/bilder/'.$file.'' ?>" border="0" style="max-width:100px;max-height:100px;" />
                <a href="<? echo 'provider-edit.php?id='.$id.'&bildname='.$file.''?>"><img src="images/delete-icon.png" border="0" /></a></div>

		<?
    }

Das Problem ist jetzt, dass zusätzlich zu meinen Bildern im Ordner auch noch zwei Dateien namens "." sowie ".." ausgegeben werden. Ich gehe mal davon aus, dass dies die default-mässigen Ordner sind, um eine Verzeichnis-Ebene höher zu gehen (zumindest bei Windows, ich arbeite zwar mit Mac und sehe diese Ordner nicht). Ist meine Annahme korrekt? Oder kommen diese "Punkte" anderswo her? Wie kann ich diese vor der Ausgaben rausfiltern?
 
Hallo,

bei jedem Betriebssystem gibt es diese virtuellen Verzeichnisse.
Der einfache Punkt ist das aktuelle Verzeichnis selbst, der doppelte Punkt das Verzeichnis darüber.
In der Schleife kannst du diese Verzeichnisse über eine einfache If-Abfrage rausnehmen, also zum Beispiel:

PHP:
if($file == "." || $file == "..") continue;

Gruß
BK
 
Vielen Dank euch beiden! Ich hab's jetzt mal mit der if-Abfrage gemacht, so klappt's. Die glob() Funktion muss ich mir mal genauer anschauen, aber danke für den Tipp.
 
Zuletzt bearbeitet:
Hallo,

kein Problem, hatte das Problem auch vor Kurzem.

den Editieren-Button hast aber schon gefunden oder? ;)
Den "Erledigt"-Button habe ich selbst noch nicht gefunden, keine Ahnung.

Und übrigens: IF IST KEINE SCHLEIFE :P

Gruß
BK
 
Zurück