Ordnerstruktur | Description auslesen

Hey Yaslaw,

vielen Dank für Deinen Denkanstoß.

Ich verstehe schon was Du meinst aber technisch umsetzen kann ich das nicht.
Gibt es irgendwo ein ähnliches Beispiel anhand ich das ableiten könnte?
 
etwa so. Du musst halt dein Code da reinzwängen

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];
}

if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        while (($file = readdir($dh)) !== false) {
            //TODO: vieles anderes
            $fileDescription =  (array_key_exists($file, $fileDescriptions))? $fileDescriptions[$file] : '';
            echo "{$file}: {$fileDescription}<br />\n";
            //TODO. Weiteres mit $file
        }
        closedir($dh);
    }
}
 
Hey hey! :)

vielen Dank an Dich.
Ich habe es hinbekommen.

Hier 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)){
				
				$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];
				}  
								
				$fileDescription =  (array_key_exists($file, $fileDescriptions))? $fileDescriptions[$file] : '';	  
				$out .= "<li><h2><img src='http://www.XXX.de/templates/XXX/XXX/img/folder.png' align='absbottom'/> $file ".$fileDescription."</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);	
				
				$fileDescription =  (array_key_exists($file, $fileDescriptions))? $fileDescriptions[$file] : '';				
				$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".$fileDescription.")</div><br clear='all' />";      										  				
				
			  }
			}
			closedir($content);
			$out .= "";  
		  }
		  return $out;
		}
		// function end				
		echo scan('./');

Gruß
 
Noch ein [phpf]htmlentities[/phpf] bei der Ausgabe von $_GET['user'] könnte nicht schaden ;)
PHP:
$out .= "<li><a href='downloadstats.php?User=".htmlentities($_GET['User'], ENT_QUOTES)."&Downloadpfad=".$dateiinfo['dirname']."&Downloaddatei=".$dateiinfo['basename']."&Datum=".date("d.m.Y - H:i")."' id='dateiname'>$file</a></li>\n"."<div id='dateiinfos'>"."
 
Deine Version ist unschön.
Du liest die .htaccess in der Scheife aus, in der du die Dateien durchgesht. Somit verarbeitest du .htaccess mehrfach.
Schau nochmals mein Beispiel an.
zuerst .htaccess auslesen und in einen Array speichern. Erst dann die Dateien durchgehen.
 
Zurück