[Solved] Dateibrowser

Begonnen von pyr0, 09 September 2010, 20:28:41

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

pyr0

Nabend an alle,

mal ne blöde Frage:

Ich möchte gerne ein Verzeichnis durch laufen und alle Verzeichnisse und Dateien anzeigen. <-- kein Problem
Nun möchte ich aber wenn es ein Verzeichnis ist ein Ordnersymbol davor zeigen,
das ganze dann auch bei denn Dateien auch und das ist genau mein Problem. 
Wie stellt man das am besten an?



Gruss pyr0
Kein Support über PN, Mail !
Bitte die Fragen im Forum stellen, nur so helfen die Antworten auch den anderen Usern.
Bitte auch die Boardsuche nicht vergessen, oft ist genau dein Problem schon an anderer Stelle gelöst worden!

GeeLoo

Jetzt mal quer gedacht =)

Hilft Dir das ?

Dateienübersicht anpassen
Wenn man die Indexierung eines Verzeichnisses zulässt, und beim Fehlen einer Startdatei der komplette Inhalt angezeigt wird, bekommt man die Standart-Symbole des Servers zu sehen. Man kann jedoch mit Hilfe der .htaccess einzelnen Dateitypen andere Symbole zuordnen. Mit dem Befehl AddIcon /bilder/typ1.gif jpg weist man zum Beispiel dem Dateityp "jpg" das Symbol "typ1.gif" im Ordner "bilder" zu. Dies geht natürlich auch für andere Dateitypen - so ändert man einfach "jpg" in "html", "gif", etc. um. Wenn man Ordnern ein Symbol zuweisen möchte, gibt man anstatt eines Dateityps "^^DIRECTORY^^" an. Wichtig ist nur, dass die Adresse des Bildes ein absoluter Pfad sein muss.
Man kann auch bestimmten Dateien Symbole zuordnen. Dafür gibt man anstatt des Dateityps den Dateinamen an. In diesem kann man mit "*" arbeiten. Das bedeutet wenn man anstatt eines kompletten Namen nur "h*" angibt, bekommen alle Dateien die mit "h" beginnen, das Symbol zugeordnet.

Das Standarticon für unbekannte Dateitypen wird mit folgendem Befehl festgelegt:
DefaultIcon /bilder/standart.gif

Mit einem weiteren Befehl kann man einzelnen Dateien eine Beschreibung zuordnen. Möchte man also das hinter der Datei "bild.gif" die Beschreibung "Dies ist ein schönes Bild" angezeigt wird, setzt man folgenden Code in die .htaccess: "AddDescription "Dies ist ein Bild" bild.gif". Auch hier kann wieder mit "*" gearbeitet werden. Die Schreibung darf aber nicht zu lang sein.

Quelle : http://www.webhosting-handbuch.de/content/9/27/de/funktionen-mit-htaccess.html

MFG
Andre
www.Pragma-Themes.de | Themes - Module - Blöcke für pragmaMx

dema80

Hi

Ich glaub das weiß er schon, ihm sein problem ist warscheinlich wenn er die Verzeichnisse und Dateien mit PHP auf den Browser anzeigen lassen will, wie er Prüfen kann ob das eine Datei oder ein Verzeichniss ist, so das er die entsprechente sympole hinsetzen kann


gruß

DeMa
Es gibt keinen zweiten Sieger --- du bist eine 1 oder ne 0, lebendig oder tot

pyr0

Erstmal Danke für Deine Ausführliche Antwort, das wuste ich schon  :smile: aber darum geht es mir ja nicht wirklich denn es setzt ja eine .htaccess vorraus und genau das will ich nicht. Nicht jeder hat eine oder will mit .htaccess arbeiten.
Ich dachte da her an sowas.

// Dateierweiterung auslesen
function get_file_ext($filename) {
  return strtolower(substr(strrchr($filename, '.'), 1));
}

// Beispielaufruf
$file = 'download.zip';
echo get_file_ext($file); // = zip

dazu dann zB ein array mit den Zuordnungen:


$file_ext['icons'] = array(
  'php'    => 'php.gif',
    'php3'   => 'php.gif',
    'php4'   => 'php.gif',
    'phtml'  => 'php.gif',
    'inc'    => 'php.gif',
    'zip'    => 'zip.gif'
     );


Nur wie kann ich  das jetzt machen, wenn es es zB eine php Datei ist das dann das Bild php.gif angezeigt wird ?

Gruss pyr0
Kein Support über PN, Mail !
Bitte die Fragen im Forum stellen, nur so helfen die Antworten auch den anderen Usern.
Bitte auch die Boardsuche nicht vergessen, oft ist genau dein Problem schon an anderer Stelle gelöst worden!

pyr0

Okay soweit so gut, hiermit gibt es eine saubere Ausgabe:


// Dateierweiterung auslesen
function get_file_ext($filename) {
  return strtolower(substr(strrchr($filename, '.'), 1));
}



$file_ext = array(
  'php'    => 'php.gif',
    'php3'   => 'php.gif',
    'php4'   => 'php.gif',
    'phtml'  => 'php.gif',
    'inc'    => 'php.gif',
    'zip'    => 'zip.gif',
    ''    => 'empty.gif',
    'gif'    => 'image2.gif'
     );


$dateipfad = "nase";


$handle    = opendir($dateipfad); // Oeffnet ein Unterverzeichnis mit dem Namen "nase"
while  ( $file  = readdir($handle) ) // Verzeichnis lesen
{
  if ( $file != "." && $file != ".."  ) // Hoehere Verzeichnisse nicht anzeigen!
  {                     
    $testfile = "$dateipfad/$file";
 
       
       
             
    if ( is_dir("$testfile") )  // testen ob ein Verzeichnis
    {
       echo '<img src="myicons/dir.gif"> <B>' . $testfile . '</b><br />';             
    }
      else
      {
        foreach($file_ext as $key => $value)
        {
          $ext = get_file_ext($file);
          if($ext == $key)
          {
            echo '<img src="myicons/' . $value . '"> ' . $file . '<br>';
          }
        }                 
      }
                   
  }
}
   
closedir($handle); // Verzeichnis schliessen


Jetzt hab ich ein neues Problem: ich möchte gern das alle Verzeichnisse zuerst angezeigt werden oder sagen wir so:
Ich möchte das das Layout ca so aussieht, hab mal eine Skizze gemacht als Anhang.


Vielleicht weiss jemand eine Lösung bzw einen Tipp.

Merci und Gruss pyr0

Kein Support über PN, Mail !
Bitte die Fragen im Forum stellen, nur so helfen die Antworten auch den anderen Usern.
Bitte auch die Boardsuche nicht vergessen, oft ist genau dein Problem schon an anderer Stelle gelöst worden!

pyr0

So ich hab es,
einfach nur zwei Funktionen draus machen und fertig ist der Salat. Diese Funktionen dann in der passenden Tabelle ausführen  :BD:
dann geht es auch.

Hier noch mal der Code dafür, falls es jemanden interessiert.

<?php

// Dateierweiterung auslesen
function get_file_ext($filename) {
  return 
strtolower(substr(strrchr($filename'.'), 1));
}



$file_ext = array(
  
'php'    => 'php.gif',
    
'php3'   => 'php.gif',
    
'php4'   => 'php.gif',
    
'phtml'  => 'php.gif',
    
'inc'    => 'php.gif',
    
'zip'    => 'zip.gif',
    
''    => 'empty.gif',
    
'gif'    => 'image2.gif'
     
);


$dateipfad "nase";

function 
IsDir($dateipfad,$file_ext){
$handle    opendir($dateipfad); // Oeffnet ein Unterverzeichnis mit dem Namen "nase"
while  ( $file  readdir($handle) ) // Verzeichnis lesen
{
  if ( 
$file != "." && $file != ".."  // Hoehere Verzeichnisse nicht anzeigen!
  
{                     
    
$testfile "$dateipfad/$file";
            
    if (
is_dir("$testfile") )  // testen ob ein Verzeichnis
    
{
      echo 
'<a href="index.php?"><img src="myicons/dir.gif" border="0"></a><br><B>' $testfile '</b><br>';
                   
    }             
  }
}
   
closedir($handle); // Verzeichnis schlie&szlig;en
}

function 
IsFile($dateipfad,$file_ext){
$handle    opendir($dateipfad); // Oeffnet ein Unterverzeichnis mit dem Namen "nase"
while  ( $file  readdir($handle) ) // Verzeichnis lesen
{
  if ( 
$file != "." && $file != ".."  // Hoehere Verzeichnisse nicht anzeigen!
  
{                     
    
$testfile "$dateipfad/$file";
            
    if (!
is_dir("$testfile") )  // testen ob ein Verzeichnis
    
{
      foreach(
$file_ext as $key => $value)
        { 
          
$ext get_file_ext($file);
          if(
$ext == $key)
          {
            echo 
'<img src="myicons/' $value '"> ' $file '<br>';
          }
        }
                   
    }             
  }
}
   
closedir($handle); // Verzeichnis schlie&szlig;en
}


echo 
'<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1">
  <tr>
    <td width="100%">'
;
    
IsDir($dateipfad,$file_ext);
    echo
'</td>
  </tr>
  <tr>
    <td width="100%">Anzeige der Datein:<br>'
;
    
IsFile($dateipfad,$file_ext);
    echo 
'</td>
  </tr>
</table>'
;

?>

Kein Support über PN, Mail !
Bitte die Fragen im Forum stellen, nur so helfen die Antworten auch den anderen Usern.
Bitte auch die Boardsuche nicht vergessen, oft ist genau dein Problem schon an anderer Stelle gelöst worden!