opendir/readdir funktioniert nicht mit php 5.0.4

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • opendir/readdir funktioniert nicht mit php 5.0.4

    Ich habe ein Script aus dem Netz, das alle Bilddateien aus einem vorgegebenen Verzeichnis liest. Das funktioniert auf dem Server (mit PHP Version 4.4.1), aber nicht lokal mit einer XAMPP-Installation (PHP Version 5.0.4).

    Hat jemand dafür eine Erklärung?

    $dir="$result[1]"; // der Verzeichnisname kommt aus einer Datenbank

    $DirectoriesToScan = array(realpath('img/'.$dir));
    $DirectoriesScanned = array();
    while (count($DirectoriesToScan) > 0) {
    foreach ($DirectoriesToScan as $DirectoryKey => $startingdir) {
    if ($dir = @opendir($startingdir)) {
    while (($file = readdir($dir)) !== false) {
    if (($file != '.') && ($file != '..')) {
    $RealPathName = realpath($startingdir.'/'.$file);
    if (is_dir($RealPathName)) {
    if (!in_array($RealPathName, $DirectoriesScanned) && !in_array($RealPathName, $DirectoriesToScan)) {
    $DirectoriesToScan[] = $RealPathName;
    }
    } elseif (is_file($RealPathName)) {
    $FilesInDir[] = $RealPathName;
    }
    }
    }
    closedir($dir);
    }
    $DirectoriesScanned[] = $startingdir;
    unset($DirectoriesToScan[$DirectoryKey]);
    }
    }

    $FilesInDir = array_unique($FilesInDir);
    sort($FilesInDir);

    // und das mache ich dann daraus bei http://jazzimage.de

    foreach ($FilesInDir as $filename)
    {
    $i=$i+1; $ii=$i+1;

    $temp=split("/", $filename); // weil der Pfad desd Scripts zu lang ist

    echo "<a name=$i><a href=#$ii><img border=1 src=$temp[5]/$temp[6]/$temp[7] alt=$temp[6]-$temp[7]></a><br>
    <a href=#top>top</a> | ($temp[6]/$temp[7])<br>";

    }
    }

  • #2
    http://www.php-resource.de/forum/sho...threadid=50454
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Ich habe eben festgestellt, dass es nicht am Versionsunterschied liegt, sondern am unterschiedlichen $feldname bei Windows und Unix. Um Verzeichnisnamen und Dateinamen aus $feldname herauszulösen, verwende ich split[]. Windows trennt in $feldname Verzeichnis und Dateinamen aber mit Backslash. Die Trennung unter Zuhilfenahme von Backslash erzeugt eine Fehlermeldung. \\ hilft dann auch nicht.

      DL

      Kommentar


      • #4
        Backslash in Variable ersetzen

        In einem PHP-Modul, das ein Verzeichnis mit Bildern ausliest und die Bilder dann darstellt, erhalte ich als $filename unter XAMPP/Windows

        D:\XAMPP\xampp\xampp\htdocs\jazzimage.de\img\2005-12-01-claudia\DSC_5289.JPG.

        Mit split kann ich Verzeichnisnamen und Dateiname wegen des Backslashs nicht separieren. Mit ereg_replace kann ich den Backslash nicht mit einem anderen Zeichen ersetzen.

        Was tun?

        DL

        Kommentar


        • #5
          Re: Backslash in Variable ersetzen

          Original geschrieben von jazzimage
          Was tun?
          1. Dafür keinen neuen Thread aufmachen *zusammenführ*

          2. Erklären, wieso das mit split() nicht möglich sein soll.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            $filename = D:\XAMPP\jazzimage\img\2005-12-12-bbb\datei.JPG

            $temp=split("\", $filename); // mit Backslash

            verursacht Fehlermeldung

            $temp = ereg_replace("\","/",$filename);

            geht auch nicht, man könnte dann mit split weitermachen.

            DL (trägt den Kasernenton mit Humor).

            Kommentar

            Lädt...
            X