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