PHP - Files aus einem Ordner sortiert auflisten

Status
Für weitere Antworten geschlossen.

spargel

Benutzer
Mitglied seit
15. Sep 2009
Beiträge
146
Punkte für Reaktionen
0
Punkte
16
Hallo zusammen...

Ich steh grad so ziemlich auf dem Schlauch und vielleicht hat jemand von euch eine Idee für mich *hoff*

Also mit folgendem php-code frage ich Dateien aus einem Ordner ab:

Rich (BBCode):
<?php
	$thereAreFiles = false;
	if ($h = opendir($DOCUMENT_ROOT . '/dateien')) {
		
		while (($file = readdir($h)) !== false) {

			if (($file != ".") && ($file != "..")) {
				
				echo "<tr><td><input type='checkbox' name='file[]' value='$file'></td><td><a href='$root/dateien/$file' target='_blank'>$file</a></td></tr>\n";
				
				$thereAreFiles = true;
			}
		}
		closedir($h);
	}

Die Dateien werden auch aufgelistet, leider aber ohne Sortierung.
Gibt es eine Möglichkeit die Liste zu sortieren?

Danke für das Lesen, und noch viel mehr Danke für jeden hilfreichen Kommentar!
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Benutze eine etwas andere Funktion, nämlich 'scandir' *guck*. Sie liest das Verzeichnis sortiert in einen Array ... mit einer foreach-Schleifen kannst dann auf die einzelnen Dateinamen zugreifen ... ansonsten gibt es auch immer die Möglichkeit per exec() eine Shell auszuführen und darin einen 'ls' zu machen ...

Itari
 

Wotan

Benutzer
Mitglied seit
18. Aug 2010
Beiträge
18
Punkte für Reaktionen
0
Punkte
0
Ich klink mich hier mal ein, da ich mich gerad an etwas ähnlichem versuche, nur leider habe ich noch weit früher probleme. Und zwar beim aufrufen des volume1/video/ Pfades aus dem volume1/web/ ordner heraus. Die aufzurufenden .php Datei und der video ordner haben denselben user in derselben gruppe, dass sollte doch ausreichen oder?


PHP:
<? 
    $path = "/volume1/video/"

    $dir_handle = @opendir($path) or die("Unable to open $path"); 
    while ($file = readdir($dir_handle)) { 

    if($file == "." || $file == ".." || $file == "index.php" ) 

        continue; 
        echo "<a href=\"$file\">$file</a><br />"; 

    }
    closedir($dir_handle); 

?>

Sofern ich
PHP:
$path = "images/"
setze, klappt es, dann greift er auf den Unterordner des webverzeichnisses zu, und listet mir die Dateien auf, wo haperts wohl ? :)

Grüße
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Wahrschein darf dein Skript diesen Pfad nicht benutzern, weil er für PHP oder den Webserver nicht zugänglich ist ... man darf ja nicht so einfach per PHP überall (!) hin mit dem User-Apachen ... das wäre ganz schön unsicher.

Itari
 

Wotan

Benutzer
Mitglied seit
18. Aug 2010
Beiträge
18
Punkte für Reaktionen
0
Punkte
0
Das hab ich mir schon gedacht, dass es sich um ein Rechteproblem handelt. Kannst du mir vielleicht einen hinweis geben, wie ich explizit diesen Pfad legitimiere für den Webuser ? bzw. wäre es auch möglich einen neuen anzulegen, der dann eben nur jenes darf. Bin da im Umgang mit der Notation noch nicht ganz fit,..

Grüße
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Das hab ich mir schon gedacht, dass es sich um ein Rechteproblem handelt. Kannst du mir vielleicht einen hinweis geben, wie ich explizit diesen Pfad legitimiere für den Webuser ? bzw. wäre es auch möglich einen neuen anzulegen, der dann eben nur jenes darf. Bin da im Umgang mit der Notation noch nicht ganz fit,..

Ich weiß ja nicht, was du vorhast ... Manchmal funktioniert der relative Pfad - man kann sich auch ein höheres Verzeichnis in ein tieferes Verzeichnis via Linux verlinken (ln -s) ... Ansonsten üfr universelle, administrative Lösungen kann man sich auch den System-Apachen nehmen.

Itari
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat