tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
JA
ANTWORTEN
16
ZUGRIFFE
813
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    diggakool diggakool ist offline Mitglied Bronze
    Registriert seit
    Aug 2004
    Beiträge
    41
    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

    Ordnerstruktur | Description auslesen-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
    Geändert von diggakool (30.01.12 um 10:28 Uhr)
     

  2. #2
    Avatar von Yaslaw
    Yaslaw Yaslaw ist gerade online n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    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

  3. #3
    diggakool diggakool ist offline Mitglied Bronze
    Registriert seit
    Aug 2004
    Beiträge
    41
    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..
     

  4. #4
    Avatar von H4ckHunt3r
    H4ckHunt3r H4ckHunt3r ist offline Mitglied Silber
    Registriert seit
    Aug 2011
    Ort
    Ennepetal (NRW)
    Beiträge
    66
    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.
    Yaslaw bedankt sich. 
    Lg H4ckHunt3r
    Auf Danke klicken kostet nichts und weh tut es auch nicht ;)
    Meine Homepage | Mein Projekt | Mein Clan

  5. #5
    diggakool diggakool ist offline Mitglied Bronze
    Registriert seit
    Aug 2004
    Beiträge
    41
    alles klar!
    vielen dank für eure hilfe!

    ich werd mal schauen das dann über eine db zu lösen.
     

  6. #6
    diggakool diggakool ist offline Mitglied Bronze
    Registriert seit
    Aug 2004
    Beiträge
    41
    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
     

  7. #7
    Avatar von Yaslaw
    Yaslaw Yaslaw ist gerade online n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    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$resultsPREG_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); 
    diggakool bedankt sich. 
    ---------------------------------------------------------------------------------------------------
    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

  8. #8
    diggakool diggakool ist offline Mitglied Bronze
    Registriert seit
    Aug 2004
    Beiträge
    41
    Cool, danke Dir!
    Werde ich am WE mal ausprobieren.
     

  9. #9
    diggakool diggakool ist offline Mitglied Bronze
    Registriert seit
    Aug 2004
    Beiträge
    41
    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-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$resultsPREG_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.
     

  10. #10
    Avatar von Yaslaw
    Yaslaw Yaslaw ist gerade online n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    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

  11. #11
    diggakool diggakool ist offline Mitglied Bronze
    Registriert seit
    Aug 2004
    Beiträge
    41
    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?
     

  12. #12
    Avatar von Yaslaw
    Yaslaw Yaslaw ist gerade online n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    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);
        }
    }
    diggakool bedankt sich. 
    ---------------------------------------------------------------------------------------------------
    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

  13. #13
    diggakool diggakool ist offline Mitglied Bronze
    Registriert seit
    Aug 2004
    Beiträge
    41
    Hey hey!

    vielen Dank an Dich.
    Ich habe es hinbekommen.

    Hier mein Script:

    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$resultsPREG_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ß
     

  14. #14
    Avatar von ComFreek
    ComFreek ComFreek ist gerade online [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.365
    Blog-Einträge
    4
    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'>".
    diggakool bedankt sich. 
    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 erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

  15. #15
    diggakool diggakool ist offline Mitglied Bronze
    Registriert seit
    Aug 2004
    Beiträge
    41
    alles klar! danke!
     

Ähnliche Themen

  1. Ordnerstruktur richtig auslesen
    Von low-group im Forum PHP
    Antworten: 7
    Letzter Beitrag: 22.01.09, 14:39
  2. description und suchmaschine
    Von flashsi im Forum HTML & XHTML
    Antworten: 8
    Letzter Beitrag: 17.11.08, 12:34
  3. UPnP Description download mit http get() Methode
    Von chett im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 1
    Letzter Beitrag: 17.03.08, 10:17
  4. TODO: File Description
    Von meiomei im Forum VisualStudio & MFC
    Antworten: 1
    Letzter Beitrag: 28.07.06, 17:46
  5. Antworten: 4
    Letzter Beitrag: 18.01.04, 03:47

Stichworte