Alphabetische Verzeichnisliste

Read-Only-Modus

Das 01-Supportforum befindet sich im Read-Only-Modus. Es ist nicht mehr möglich sich zu registrieren, neue Themen zu erstellen oder auf bestehende Themen zu antworten.

Alle Inhalte stehen bis auf absehbare Zeit jedoch weiterhin lesend zur Verfügung.


Bei Fehlern oder Problemen mit PHP-Scripten von 01-Scripts.de erstellen Sie gerne einen Issue-Eintrag auf Github oder nehmen Sie per E-Mail Kontakt auf.

  • Hi, ich hab da eine frage. Das Verzeichnis das ich anzeige sind mp3´s und da bräuchte ich noch den link bei der ausgabe integriert. Vielleicht kann mir da wer helfen.

  • ja, bezieht sie sich! :)
    ich möchte alle dateien aus einem ordner durchführen lassen, also sie sollen einfach in die datei geschrieben werden, in der das script oben steht!
    danke...;)

  • Zitat

    Original von guest
    ja, bezieht sie sich! :)
    ich möchte alle dateien aus einem ordner durchführen lassen, also sie sollen einfach in die datei geschrieben werden, in der das script oben steht!
    danke...;)


    Hallo,


    wenn in den Dateien, die includiert werden sollen korrek ausgezeichneter PHP-Code vorhanden ist wird dieser normalerweise auch ausgeführt (vgl. http://www.selfphp.de/funktion…l_mechanismen/include.php )


    Ansonsten kannst du es nur noch mit:
    readfile()
    oder eval() probieren.


    MfG
    Michael Lorer

  • hallo, wie stelle ich es denn am geschicktesten an, wenn ich nich nur das aktuelle verzeichnis, sondern die komplette verzeichnisstruktur des servers ausgeben möchte? also ordner, und davon dann getrennt die ganzen unterordner

  • Dafür müsstest du jedesmal mit is_dir() überprüfen, ob die aufgelistete Datei ein Verzeichnis ist und dementsprechend dann in das Verzeichnis wechseln und da wieder alles auflisten, und wieder überprüfen ob eine der aufgelisteten Dateien ein Verzeichnis ist...etc.


    MfG,
    Michael Lorer

  • @guest:


    am geschicktesten löst Du dieses Problem, indem Du eine "rekursive Verzeichnisauflistung" benutzt.


    Den folgenden Quellcode habe ich mal irgendwann im Netz gefunden:


    [PHP]


    function list_dir($chdir) {
    global $PHP_SELF;
    chdir($chdir);
    $handle = opendir('.');
    while ($file = readdir($handle)) {
    if(is_dir($file) && $file != "." && $file != "..") {
    echo "Directory <font color=blue>$chdir/$file</font> found.<br>";
    $sdirs[] = $file;
    }
    elseif(is_file($file) && $file != basename($PHP_SELF))
    echo "File <font color=royalblue>$chdir/$file</font> found.<br>";
    }


    for($i=0; $i<sizeof($sdirs); $i++) {
    echo "Descending to directory <font color=blue>$sdirs[$i]</font>...<br>";
    list_dir($sdirs[$i]);
    chdir("..");
    }
    }


    [/PHP]



    Diese Funktion in extra php-datei speichern und dann mit include 'extradatei.php' in deine Hauptphp-datei einbinden.


    An gewünschter Stelle mit list_dir($chdir) aufrufen !

  • Zitat

    Original von dirtynight
    Michael :


    Könntest Du anhand deines oben aufgeführten PHP-Skripts, auch noch zeigen wie man die Auflistung der Dateien auf x Dateien pro Seite anzeigen (Blättern aber ohne SQL) begrenzen kann ?
    Wäre echt nett ;) Thank you in advice!


    Sobald ich Zeit finde werde ich dir den entsprechenden Schnipsel posten.


    MfG,
    Michael

  • Zitat

    Original von dirtynight
    Michael :


    Könntest Du anhand deines oben aufgeführten PHP-Skripts, auch noch zeigen wie man die Auflistung der Dateien auf x Dateien pro Seite anzeigen (Blättern aber ohne SQL) begrenzen kann ?
    Wäre echt nett ;) Thank you in advice!


    Das sollte hiermit funktionieren:
    [PHP]<?PHP
    //Dieser Codeschnipsel gibt den gesamten Inhalt des Verzeichnisses, in dem sich diese Datei befindet
    //inkl. Link zu den jeweiligen Dateien aus. Außerdem wird die Ausgabe auf eine bestimmte Anzahl pro Seite
    //beschränkt. Es werden dann vor- und zurück-Links ausgegeben.


    $ezahl = 5; //Wie viele Einträge sollen pro Seite ausgegeben werden?


    //Seiten-Funktion:
    if(!isset($_GET['start']))
    {
    $bis = $ezahl+1;
    $start = 1;
    }
    else
    {
    $bis = $_GET['start']+$ezahl;
    $start = $_GET['start'];
    }


    $verz = opendir("."); //Name des Verzeichnisses angeben, welches geöffnet werden soll
    //Bei einem . wird das Verzeichnis in dem sich die Datei befindet aufgelistet


    $linkl = array("0");
    while($file = readdir($verz))
    {
    //Hiermit wird das Verzeichnis aufgelistet
    if($file != "." && $file != ".." && $file != $PHP_SELF)
    {
    //Alle Ordner/Files werden in den Array geschrieben (immer ans Ende):
    array_push ($linkl, "<a href=\"".$file."\"><b>".$file."</b></a><br />\n");
    }
    }


    //Es wird gezählt wieviele Elemente im Array sind
    $anzahl = count($linkl);


    //Der Array wird alphabetisch sortiert
    sort($linkl);


    //In dieser for-Schleife werden alle Arrayelemente ausgegeben
    for($x=$start;$x<$bis;$x++)
    {
    echo $linkl[$x];
    }


    //Ausgabe der verschiedenen Seiten
    if(!isset($_GET['start']))
    {
    $w = 1+$ezahl;
    echo "<a href=\"".$PHP_SELF."?start=".$w."\">Weiter &raquo;</a>";
    }
    else
    {
    $w = $ezahl+$_GET['start'];
    $z = $_GET['start']-$ezahl;
    if($z >= 1){ echo "<a href=\"".$PHP_SELF."?start=".$z."\">&laquo; Zurück</a> "; }
    if($w <= $anzahl){ echo " <a href=\"".$PHP_SELF."?start=".$w."\">Weiter &raquo;</a>"; }
    }


    closedir($verz);
    ?>[/PHP]


    Den fertige Codeschnipsel finden Sie im Anhang des ersten Beitrags zum einfach runterladen und ausprobieren.