PHP - Files aus einem Ordner sortiert auflisten

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

spargel

Benutzer
Registriert
15. Sep. 2009
Beiträge
146
Reaktionspunkte
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!
 
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
 
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
 
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
 
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
 
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