Readdir / Scandir Problem

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von ryoushi, 03.12.2004.

  1. ryoushi

    ryoushi Thread Starter MacUser Mitglied

    Beiträge:
    87
    Zustimmungen:
    1
    MacUser seit:
    02.05.2004
    Hallo.

    Ich habe ein Problem mit den Funktionen Readdir / Scandir.

    Wenn ich eine der beiden Funktionen benutze, ist es mir nur möglich den Inhalt des Verzeichnis auszulesen, in dem sich auch die PHP Datei befindet.Sobald ich eine anderes Verzeichnis angebe, bekomme ich nicht.Keine Fehlermeldung oder ähnliches, einfach nur eine leere Seite.

    Ist das normal?Kann denn wirklich nur das Verzeichnis auslesen, in dem sich auch die PHP Datei befindet?Das kann doch nicht sein?Was mache ich denn falsch?

    Ich hoffe, das mir jemand helfen kann.

    Schon mal vielen Dank.
     
  2. Katana

    Katana MacUser Mitglied

    Beiträge:
    989
    Zustimmungen:
    0
    MacUser seit:
    30.08.2004
    welche verzeichnisse möchtest du denn einlesen?
     
  3. ryoushi

    ryoushi Thread Starter MacUser Mitglied

    Beiträge:
    87
    Zustimmungen:
    1
    MacUser seit:
    02.05.2004
    Hallo.

    Also auf dem MAC wäre das dann z.B. Users/username/Sites/Bilder/.Das funktioniert auch, solange das PHP Script in dem Verzeichnis liegt. Wenn ich jetzt aber Users/username/Sites/Bilder/Urlaub/ auslesen will, geht das schon nicht mehr.Und die Rechte der Verzeichnisse sind beide gleich gesetzt.
     
  4. Katana

    Katana MacUser Mitglied

    Beiträge:
    989
    Zustimmungen:
    0
    MacUser seit:
    30.08.2004
    poste mal bitte deinen code ...
     
  5. ryoushi

    ryoushi Thread Starter MacUser Mitglied

    Beiträge:
    87
    Zustimmungen:
    1
    MacUser seit:
    02.05.2004
    Also hier die Readdir Version:

    <?
    if ($handle = opendir('Users/ryoushi/Sites/'))
    {
    echo "Files:<br>";

    while (false != ($file = readdir($handle)))
    {
    if ($file != "." && $file != ".." && is_dir($file))
    {
    echo "$file<br>";
    }
    }

    closedir($handle);
    }
    ?>

    Und hier die Scandir Version:

    <?
    $dir = "Users/ryoushi/Sites/";

    $files = scandir($dir);

    for($i = 0; $i <= sizeof($files); $i++)
    {
    if(is_dir($files[$i]) && $files[$i]!="." && $files[$i]!="..")
    {
    echo $files[$i];
    }
    }
    ?>
     
  6. Katana

    Katana MacUser Mitglied

    Beiträge:
    989
    Zustimmungen:
    0
    MacUser seit:
    30.08.2004
    und wenn du $dir = "/Users/ryoushi/Sites/" verwendest? also, am anfang noch einen / einfügst ... geht es dann?
     
  7. ryoushi

    ryoushi Thread Starter MacUser Mitglied

    Beiträge:
    87
    Zustimmungen:
    1
    MacUser seit:
    02.05.2004
    Upps.Den Slash habe ich vergessen.Aber es funktioniert trotzdem nicht.

    Wenn ich Readdir verwende und dort einen anderen Pfad angebe, läuft er trotzdem in den IF Zweig rein, sehe ich ja an der Ausgabe Files:, aber der Inhalt des Verzeichnis wird halt nicht angezeigt.
     
  8. ryoushi

    ryoushi Thread Starter MacUser Mitglied

    Beiträge:
    87
    Zustimmungen:
    1
    MacUser seit:
    02.05.2004
    Problem erkannt, Gefahr gebannt.Der Fehler war, das readdir nur realtive verzeichnisnamen zurückliefert.Sobald man das ganze dann in einen Absolutenverzeichnisnamen ändert, passt das alles.

    So sah es vorher aus:
    if ($file != "." && $file != ".." && is_dir($file))
    {
    echo "$file<br>";
    }

    Und so müsste es aussehen:
    if ($file != "." && $file != ".." && is_dir("/Users/peterfischer/Sites/".$file))
    {
    echo "$file<br>";
    }
     
Die Seite wird geladen...

Diese Seite empfehlen