unbekannte Klasse...

Imago

Grünschnabel
Code:
while($entry = $aktdir->read()) ...

Diesen Schnipsel hab ich mal in einem Quelltext gefunden...
$aktdir ist dabei das aktuelle Verzeichnis.

Allerdings ist mir 'read()' unbekannt.
Komisch ist nur, dass nirgens eine Klasse eingebunden wird.
Fazit: 'read()' ist PHP intern.
Aber ich finde nirgens eine Doku dazu...

Weiss jemand wo es nähere Informationen zu diesem Befehl gibt oder kann mir erklären woher dieser kommt?

P.S.: ...und ich hab mir so viel Mühe gegeben ne eigene Funktion zum Verzeichnisse auslesen zu schreiben... ;)
 
Wenn keine Klasse eingebunden wurde, sieht mir das eher nach einer Funktion aus,
die an dieser Stelle noch nicht bekannt ist.

Verzeichnisse auslesen?
PHP5 bietet schöne neue Möglichkeiten mit [phpf]scandir[/phpf]
 
Es wurde wirklich nirgens irgendeine Klasse eingebunden und auch keine Funktion die so heisst geschrieben.

Aber das Skript funktioniert und liest das Verzeichnis ordnungsgemäß aus... :confused:
 
...und außerdem gibts nicht so einen schönen Effekt:

Probiers doch mal:

Code:
<?

function lese_dir($verzeichnis, $einruecken= 0, $farbe= 000000) //Verzeichnisse rekursiv auslesen
	{
	 $fd=opendir($verzeichnis);

	 $abstand= 5; // festlegen wie weit eingerückt werden soll (in Pixel)

	 $abstand+= $einruecken; // der immer weiter weg Effekt, auskommentieren, um gleichen Abstand zu erhalten...
	 $farbe= dechex(hexdec($farbe) + hexdec(234567)); // Linienfarbe berechnen

	 $x=0;
	 while (($file = readdir($fd)) !== false) //Verzeichnis nach Dateien und Ordner durchsuchen, erst Dateien ausgeben
 		{
		  if (!is_dir($verzeichnis."/".$file))
		 	{
			 //if (substr($file,-4)== '.php') // Komentarzeichen entfernen, wenn nur .php Dateien ausgelesen werden sollen
			 echo "<div style=\"margin-left:$abstand px; padding-left:0px; border-left-width: 1px; border-left-style: solid; border-left-color: #999999;\">- <a href=\"$verzeichnis/$file\">".$file."</a></div>"; //Dateien ausgeben
			$x++;
			}
		}

	 $anzahl_dateien= ($x== 0 || $x> 1) ? "<div style=\"margin-left:$abstand px; padding-left:0px; border-left-width: 1px; border-left-style: solid; border-left-color: #999999;\">>>>$x Dateien</div>" : "<div style=\"margin-left:$abstand px; padding-left:0px; border-left-width: 1px; border-left-style: solid; border-left-color: #999999;\">>>>$x Datei</div>";
	 echo $anzahl_dateien;

	 $fd2=opendir($verzeichnis);
	 
	 while (($file = readdir($fd2)) !== false) //Verzeichnis nach Dateien und Ordner durchsuchen, dann Ordner ausgeben...
 		{
		 if ($file !== '.' && $file !== '..')
		 {
		  if (is_dir($verzeichnis."/".$file))
			{
			 echo "<div style=\"margin-left:$abstand px; padding-left:0px; border-left-width: 1px; border-left-style: solid; border-left-color: #$farbe;\"><br><b>= ".$file."</b>"; // Ordner ausgeben
			 lese_dir($verzeichnis."/".$file, $abstand, $farbe);
			}
		  }
		}

	 closedir($fd);
	 closedir($fd2);

	 echo "</div>"; // End-Div vom Ordner

	 clearstatcache(); //alte Ordner- bzw. File- Definitionen löschen
	}

echo "<b>.</b><br>";
lese_dir('.'); //aktuelles Verzeichnis auslesen

?>
 
Ohja, das ist das was ich suchte. :)

Da hätte ich wohl auch drauf kommen müssen, dass dir() ne Klasse und keine Funktion ist.

Bei de.php.net schau ich ja sonst auch erst...
Aber da hatte ich es diesmal übersehen.

Dankeschön! :-)
 
Bitte, wieder einmal ein Beispiel aus dem Kapitel "Wer mit Quelltext geizt, brauch länger zur Lösung!".
Hättest du mehr gezeigt, wäre die Verwendung nach dir() mir bestimmt aufgefallen :D
 
Zurück