PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP: Blödes opendir



Maisaffe
13.03.2005, 16:43
<?PHP
$verz=opendir ('.gaestebuch');
while ($file = readdir ($verz)) {
if($file != "." && $file != "..") echo "$file <br>";
}
closedir($verz);
?>
<hr>
<?PHP
while ($file = readdir (opendir ('.gaestebuch'))) {
if($file != "." && $file != "..") echo "$file <br>";
};
?>

Beim zwoten (nach <hr> isn Fehler drinne, nur welcher >__>)

Dennis

PS: Den Kram habe ich hier geshort:
http://127.0.0.1/selfhtmlphp/selfphp/funktionsreferenz/verzeichnis_funktionen/readdir.html ( :p )

wrtlprnft
13.03.2005, 16:48
Beim zweiten öffnest du bei jedem Schleifendurchlauf das Verzeichnis neu, deshalb bekommst du immer dieselbe Datei und eine stattliche Ansammlung nichtgeschlossener directory-Pointer.

Maisaffe
13.03.2005, 16:54
Beim zweiten öffnest du bei jedem Schleifendurchlauf das Verzeichnis neu, deshalb bekommst du immer dieselbe Datei und eine stattliche Ansammlung nichtgeschlossener directory-Pointer.
Aber die Variable wird ja auch mehrmals abgerufen, also müsste das doch auch nen Fehler auslösen?

Dennis

Manni
13.03.2005, 17:02
Im oberen Teil erstellst du mit $verz einen Verweis auf deine Dateiliste. Aus diesem wird dann per readdir() immer eine Datei ausgelesen. In deiner zweiten Version öffnest du jedesmal wieder neu die Datei und liest dann mit readdir() immer die erste Datei aus, und die ist immer ".". Deswegen wird auch nichts angezeigt. Du musste es wie im oberen Teil machen ;)

wrtlprnft
13.03.2005, 17:03
Vermutlich ist das erste Verzeichnis . oder .., deshalb wird es gar nicht angezeigt.
PHP ist das egal, was du mit den directory-Pointern machst. Deshalb gibt es auch keinen Fehler.