Mailinglisten-Archive |
André Laugks wrote: > Wie kann ich herausfinden, welchen Pfad eine Datei, z.B. *.html > zum Rootverzeichnis hat. z.B. > > http://www.domain.de/ > >Ordner< > ordner1 > 1.html > 2.html > 3.html > ordner2 > 4.html > 5.html > 6.html > > Das ganze soll für ein Suchscript sein. Ich möchte das Script > durch die Ordner1 und Ordner2 schicken und die Dateien nach > dem Suchstring durchsuchen. Wird etwas gefunden, zum Beispiel > in 2.html, möchte ich einen Link ausgegeben bekommen, also z.b. > /ordner1/2.html. Denn möchte ich in einem Array ablegen und dann > weiter mit der Suche fortfahren. Egal ob Du die relative Lage eines PHP Skripts oder einer anderen Datei zum Document Root ermitteln möchtest, Du benötigst zunächst eine Pfadangabe der Dateien, die untersucht werden sollen. Bei PHP Skripten ist es recht einfach, zu erfahren wo sie relativ zum Document Root liegen. In einer der zahllosen Enviroment Variablen findest Du einen passenden Wert, phpinfo() ist Dein Freund ($SCRIPT_PATH für die vertriebenen Windows Binaries und $PHP_SELF unter Unix). Willst Du die relative Lage einzelner HTML Dateien im Vergleich zu anderen herausfinden, besorgst Du Dir alle notwendigen Angaben in einem gesonderten PHP Skript mit den Directory Funktionen http://uk.php.net/manual/ref.dir.php3. Paß bei der HTML Lösung auf. Je nach Hostingmaschine könnte es sein, daß Du Pfade bekommst die über das Document Root hinausreichen. Dein Pfad ist dann nicht "/index.htm", "/ordner1/1.html", sondern "/home/www/servers/www.Ihrname.de/..." - Du befindest dich in diesem Fall nicht in einem "changeroot enviroment" und mußt das Document Root Verzeichnis von den gefundenen Angaben abziehen. Das verbleibende sollte so aussehen wie $PHP_SELF. Der gefundene Pfad wird exploded http://uk.php.net/manual/function.explode.php und die Anzahl der Elemente im resultierenden Array benutzt, um die relative Lage zum Document Root zu bestimmen. $path = explode("/", $PHP_SELF); $level = count($path); $relpath = ""; for ($i=2; $i<$level; $i++) $relpath.="../"; $file = $relpath.$filename; Ulf
php::bar PHP Wiki - Listenarchive