H@nnib@ll: Verzeichnis auf Unterverzeichnis pruefen?

Hallo Forumler,

ich versuche die ganze Zeit schon ein Verzeichnis zu pruefen ob dieses das unterverzeichnis _img enthaelt. Bisher versuche ich es damit:

if (is_dir("../usenet/alt.binaries.multimedia/".$format."/_img"){
echo "Verzeichnis vorhanden";
}
else
{
echo "Verzeichnis nicht vorhanden";
}

aber aus irgendeinem Grund wird mir immer false ausgegeben (das Verzeichnis ist nicht vorhanden) obwohl es vorhanden ist!

Unter Windows/Apache gab es keine Probleme! Erst bei der Konvertierung fuer Linux/Apache! Gibt es da irgendwas zu beachten bei der Verzeichnisstruktur (bin Window$ gewoehnt)?

Besten Dank im vorraus!

Gruss

H@nnib@ll

  1. Hi,

    if (is_dir("../

    nur für's Protokoll: Im CGI-Modus gibt es kein "aktuelles Verzeichnis", zu dem Du Dich hier relativ bewegen willst (vrgl. auch http://www.php.net/manual/en/function.is-dir.php).

    usenet/alt.binaries.multimedia/".$format."/_img"){

    Mit was hast Du $format gefüllt? Was ergibt sich, wenn Du diesen String mal testweise ausgibst?

    Unter Windows/Apache gab es keine Probleme! Erst bei der Konvertierung fuer Linux/Apache! Gibt es da irgendwas zu beachten bei der Verzeichnisstruktur (bin Window$ gewoehnt)?

    Zumindest, dass Linux case-sensitive ist. Vielleicht sind auch die Dateirechte relevant; ich weiß nicht, wie is_dir() intern arbeitet.

    Cheatah

    1. Hi Cheatah,

      das ganze saehe dann zusammengesetzt so aus:

      ../usenet/alt.binaries.multimedia/asf/_img

      wobei asf dann eben halt der String aus der Variablen $format ist die vorher von einer Menuseite uebergeben wird in der der User das format auswaehlt in dem er Videos gerne sehen moechte.

      Mit dem Befehl getcwd() bekomme ich als aktuelles Arbeitsverzeichnis

      /var/www/html/movie

      angezeigt. In diesem Verzeichnis befindet sich die php Datei. Das zu ueberpruefende Verzeichnis ist aber eine Ebene hoeher und dann in dem Verzeichnis

      usenet/alt.binaries.multimedia/asf

      Ich hoffe ich habe mich verstaendlich ausgedrueckt! Habe gerade nachgeschaut und mit case-sensitive hat es nichts zu tun das passt!

      Mache ich z.B. eine Statabfrage an andere files die sich in usenet/altbinaries.multimedia/asf befinden funktioniert es nur bei is_dir() nicht.

      Gruss

      H@nnib@ll

      1. Hi,

        Mit dem Befehl getcwd() bekomme ich als aktuelles Arbeitsverzeichnis
        /var/www/html/movie

        ah ja, demnach wäre "../usenet/" also "/var/www/usenet/", denn "/.../ohne_slash" ist eine Datei innerhalb von "/.../".

        Ich hoffe ich habe mich verstaendlich ausgedrueckt!

        Voll und ganz. Mein Rat ist eher allgemeiner Natur: Vermeide relative Pfadangaben. Füge ggf. absolute Angaben aus Werten des Environments (getenv() hilft) zusammen.

        Mache ich z.B. eine Statabfrage an andere files die sich in usenet/altbinaries.multimedia/asf befinden funktioniert es

        Bist Du sicher, dass sie nicht nur zufällig dem erwarteten Ergebnis entsprechen?

        nur bei is_dir() nicht.

        Demnach müsste ein Verzeichnis, welches Du über Deine Angaben erzeugst, anschließend zwar existieren, aber bei is_dir() dennoch false zurückliefern.

        Cheatah