Ordnerstruktur | Description auslesen

diggakool

Mitglied
Moin Moin,

vielleicht hat jemand von Euch einen Tipp für mich wie ich mit PHP die Description einer Datei bzw. eines Ordners im Verzeichnisbaum auslesen kann.

Die Struktur sieht folgendermaßen aus:

Name | Last modified | Size | Description

Bildschirmfoto-2012-01-30-um-10.20.jpg

Ich möchte sozusagen nur die Beschreibung der Datei bzw. des Ordners abrufen und ausgeben.
Hat jemand eine Idee?

Vielen Dank und schöne Grüße
 
Zuletzt bearbeitet:
Beschreibung einer Datei? Das kann ich nicht mal in Windows mit dem Fileexplorer. Wie ist denn diese Beschreibung hinterlegt?
 
Moin Yaslaw,

ich weiß leider auch nicht wie die Description dort hinterlegt ist. :/

Ich dachte halt, dass es evtl. auch einen Befehl dafür gibt wie z.B. für die Dateigröße "filesize" etc..
 
du kannst die Dateien und Pfade über eine Datenbank mit einer Beschreibung versehen...
aber eine Datei an sich hat eigentlich keine Beschreibung und ein Ordner schon garnicht. ;)
 
Moin Moin,

also die Daten und Infos für die Ordner und Dateien werden in einer .htaccess Datei abgelegt.

So sieht das darin aus:
AddDescription "Beschreibung" Datei.zip
AddDescription "Beschreibung" Datei.zip

Weiß jemand wie ich die daraus bekommen und mit PHP auslesen und darstellen kann?

Viele Grüße
 
Ah...
Also, hier mal der Link zu einer Doku um zu verstehen um ws es geht
http://httpd.apache.org/docs/current/mod/mod_autoindex.html#adddescription

Ich habe grad nix gefunden wie man dadrauf zugreiffen kann. Ist aber nicht so das Problem.
Einfach die ganze .htaccess einlesen und mittels preg_match_all alle Dateibeschreibungen auslesen
PHP:
//Ganze .hraccess auslesen
$htaccess = file_get_contents('.htaccess');

//Jeden AddDescription auslesen
// Pattern: 
// Zeilenanfang + Beliebige viele Leerzeichen + "AddDescription" + beliebig viele Leerzeichen (min eins)
// + ein Anführungszeichen + Alles was kein Anfürhungszeichen ist (Das ist die Beschreibung) 
// + ein Anführungszeichen  + Alles was kein Leerzeichen ist (Das ist der Dateiname) 
// + belibig viele Leerzeichen + Zeilenende
$pattern = '/^[[:space:]]*AddDescription[[:space:]]+"([^"]+)"[[:space:]]+([^[:space:]]+)[[:space:]]*$/im';
preg_match_all($pattern, $htaccess, $results, PREG_SET_ORDER);

//Eine Array erstellen der als Index den Dateinamen hat und als Value die Description
$fileDescriptions = array();
foreach($results as $result){
    $fileDescriptions[$result[2]] = $result[1];
}

var_dump($fileDescriptions);
 
Moin,

also die .htaccess liest er nun aus. Das ist schon mal gut. :)
Nun komme ich aber nicht weiter die Daten (Beschreibung etc.) dann den Einträgen zuzuordnen.

Hier ist mein Script:

PHP:
		// function start	      		
		$dateiinfo = pathinfo($folder."/".$datei);
		$size = ceil(filesize($folder."/".$datei)/1024);
								 
		function scan($folder){
		  global $hide, $out;
		  
		  if($content = opendir($folder)){			  
			$out .= "<ul>\n <br>";
			while(false !== ($file = readdir($content))){
			  if(is_dir("$folder/$file") && $file != "." && $file != ".." && !in_array($file, $hide)){
				$out .= "<li><h2><img src='http://www.XXX.de/templates/XXX/XXX/img/folder.png' align='absbottom'/> $file</h2>\n <div class='togglebox1' id='toggleul'><div class='block'>";                 
				scan("$folder/$file");
				$out .= "</li>\n </div></div>";      
			  } elseif($file != "." && $file != ".." && !in_array($file, $hide)){
				
				$dateiinfo = pathinfo($folder."/".$file);
				$dateiinfofolder = $folder;
				$size = ceil(filesize($folder."/".$file)/1024);
				
				$out .= "<li><a href='downloadstats.php?User=".$_GET['User']."&Downloadpfad=".$dateiinfo['dirname']."&Downloaddatei=".$dateiinfo['basename']."&Datum=".date("d.m.Y - H:i")."' id='dateiname'>$file</a></li>\n"."<div id='dateiinfos'>"."(Dateiformat: ".$filetime.$dateiinfo['extension']." | Dateigröße ".$size."kb)</div><br clear='all' />";      										  
				 
			  }
			}
			closedir($content);
			$out .= "";  
		  }
		  return $out;
		}
		// function end				
		echo scan('./');	
	
	
		$htaccess = file_get_contents('.htaccess');
		$pattern = '/^[[:space:]]*AddDescription[[:space:]]+"([^"]+)"[[:space:]]+([^[:space:]]+)[[:space:]]*$/im';
		preg_match_all($pattern, $htaccess, $results, PREG_SET_ORDER);

		$fileDescriptions = array();
		foreach($results as $result){
		    $fileDescriptions[$result[2]] = $result[1];
		}
		
		print_r($fileDescriptions);

Hat jemand einen Tipp für mich wie ich die Daten aus der .htaccess der Daten zuordnen kann?

Ich habe schon überlegt die Zuordnung über die Dateinamen zu machen. D.h. wenn Dateiname aus der Liste gleich ist wie Dateiname aus der .htaccess. Nur weiß ich leider nicht wie ich das umsetzen kann.
 
Zuerst die .htaccess auslesen. Est Anschliessend die Dateien abarbeiten
Anschliessend jeder Filenamen prüfen ob eine Description vorhanden ist. Also innerhalb deiner while(...readdir()) Schleife
PHP:
$fileDescription =  (array_key_exists($file, $fileDescriptions)) ? $fileDescriptions[$file] : '';
 
Zurück