Mailinglisten-Archive |
Hallo Lutz, > Hi Thomas, > > Jetzt benötige eine Vorgehensweise, um diesen relativen Pfad > immer korrekt > > zu ermitteln. > > Stehe auf dem Schlauch, weil mir fällt dazu irgendwie nix ein. :-( > > ist das nicht ein klassischer Fall, wo sinnvollerweise ein ABSOLUTER Pfad > verwendet werden sollte? ;-) Das Upload/Download-Verzeichnis > scheint doch immer > an derselben Stelle zu liegen. Dann musst Du nicht die ganzen Verrenkungen > ausfuehren, um einen relativen Pfad zu ermitteln. Theoretisch: Ja! Praktisch: Nein! Der Pfad wird an ein externes Programm übergeben, welches auf Grund eines Bugs mit zu langen Dateinamen nicht zurechtkommt! Während ../../foo/bar/foo.doc funktioniert, gibts bei /var/foo/bar/a/b/c/d/ (der Pfad ist noch wesentlich länger) Probleme. > > Wenn Du aber drauf bestehst, gibt es mehrere Moeglichkeiten das > zu tun. :-) Von > der Logik her musst Du das "/var/www/" von Deinem physischen Pfad, z.B. > /var/www/foo/bar/dummy.php, entfernen und dann alle verbleibenden > "xyz/" durch > ein "../" zu ersetzen. Z.B. so: > > $sDeinPfad = '/var/www/foo/bar/dummy.php'; > $aPfadArray = explode ('/', $sDeinPfad); > $iAnzahlElemente = count($aPfadArray); > $iAnzahlRelVerz = AnzahlElemente - 3; > $sDeinRelPfad = ''; > for ($i=0; $i<$iAnzahlRelVerz; $i++) { > $sDeinRelPfad .= '../'; > } > $sDeinRelPfad .= $aPfadArray[$iAnzahlElemente-1]; > > So in etwa. UNGETESTET! Danke für die Mühe. Teste gerade das Beispiel von dave (3. Kommentar) der Doku von realpath(). Danach schaue ich mir deins mal genauer an! Gruß Thomas
php::bar PHP Wiki - Listenarchive