-
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

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üßeGeändert von diggakool (30.01.12 um 10:28 Uhr)
-
Beschreibung einer Datei? Das kann ich nicht mal in Windows mit dem Fileexplorer. Wie ist denn diese Beschreibung hinterlegt?
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
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..
-
30.01.12 17:27 #4
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.
Lg H4ckHunt3r
Auf Danke klicken kostet nichts und weh tut es auch nicht ;)
Meine Homepage | Mein Projekt | Mein Clan
-
alles klar!

vielen dank für eure hilfe!
ich werd mal schauen das dann über eine db zu lösen.
-
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...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-Code://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);
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
Cool, danke Dir!

Werde ich am WE mal ausprobieren.
-
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:
Hat jemand einen Tipp für mich wie ich die Daten aus der .htaccess der Daten zuordnen kann?PHP-Code:// 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);
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
Code php:1
$fileDescription = (array_key_exists($file, $fileDescriptions)) ? $fileDescriptions[$file] : '';
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
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
Code php:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
//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); } }
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
Hey hey!

vielen Dank an Dich.
Ich habe es hinbekommen.
Hier mein Script:
GrußPHP-Code:// 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('./');
-
23.02.12 17:48 #14
Noch ein htmlentities() bei der Ausgabe von $_GET['user'] könnte nicht schaden

PHP-Code:$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'>"."
mfg ComFreek
Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
[PHP] Überprüfen, ob Website erreichbar • Sicherheit in PHP-Codes schaffen • Google Chrome-Extension für tutorials.de • json_compress()
-
alles klar! danke!
Ähnliche Themen
-
Ordnerstruktur richtig auslesen
Von low-group im Forum PHPAntworten: 7Letzter Beitrag: 22.01.09, 14:39 -
description und suchmaschine
Von flashsi im Forum HTML & XHTMLAntworten: 8Letzter Beitrag: 17.11.08, 12:34 -
UPnP Description download mit http get() Methode
Von chett im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 1Letzter Beitrag: 17.03.08, 10:17 -
TODO: File Description
Von meiomei im Forum VisualStudio & MFCAntworten: 1Letzter Beitrag: 28.07.06, 17:46 -
RSS / RDF von Netzeitung.de - Description weglassen
Von tefla im Forum PHPAntworten: 4Letzter Beitrag: 18.01.04, 03:47



4Danke

Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren