Hallo,
ich möchte ein Navigationsscript in files, die in unterschiedl. Verzeichnisebenen liegen, einbinden, und zwar so, dass die Links trotzdem funktionieren.
Meine Verzeichnisstruktur:
/root/mypath.php
...etc.
/root/pages/navigation.php
/root/pages/a.php
...etc.
und weiter:
/root/pages/subdir/script_das_die_navigation_einbinden_moechte.php
/root/pages/subdir/subsubdir/weiteres_script_das_die_navigation_einbinden_moechte.php
...etc.
Also brauche ich im Navigationsscript absolute Pfade für die darin gesetzten Links. Ich beginne also mit dem root-Verzeichnis (weil das lokal und öffentlich nicht gleich ist, muss ich es ermitteln).
Deshalb habe ich mit
$script_path = realpath(basename(getenv("SCRIPT_NAME")));
$slash = explode('/', getenv("SCRIPT_NAME"));
$current_filename = $slash[count($slash) - 1];
$host_url = str_replace($current_filename, "", getenv("SCRIPT_NAME"));
define ("MYPATH",$host_url);
den Namen des root-Verzeichnisses ermittelt. Das ist da, wo das file 'mypath.php' liegt.
echo MYPATH;
zeigt den korrekten Namen des root-Verzeichnisses.
Um MYPATH in 'navigation.php' nutzbar zu machen, habe ich mittels
include('../mypath.php');
die root-Konstante MYPATH in 'navigation.php' eingebunden. Nur kann ich mit dem Ergebnis nichts anfangen.
Ein Link in 'navigation.php' heisst z.B. 'a.php' ('a.php' liegt am gleichen Ort wie 'navigation.php').
Mit MYPATH/pages/a.php sollte meiner Ansicht der Link zu /root/pages/a.php werden (wo die Datei ja auch liegt). Tut er aber nicht - sondern: /root/pages/pages/a.php.
MYPATH hat offenbar wegen des include den neuen 'Aufenthaltsort' übergenommen. Ich dachte aber, eine Konstante sei eine Konstante.
Kann mir jemand erklären, was da los ist?
Oder, wie ich das eingangs erwähnte Problem auf andere Art lösen könnte?
Vielen Dank zum voraus