Mam skript, ktery je umisten nekde v x-te urovni webu a ja presne nevim v jake. Z tohot skriptu se potrebuji RELATIVNE odkazat na soubor, ktery je ve slozce jejiz umisteni znam vzhledem k rootu.
Pr.
ROOT:
-------
./source/
./aaa/bbb/ccc/../xxx/skript.php
Ve skriptu skript.php potrebuji relativne zapsat URL souboru umisteneho ve slozce source. Nevim ale, o kolik urovni je tato slozka vyse nez slozka xxx, ve ktere je skript.php umisten. Jak se co nejsnaze na tento soubor odkazat? Samozrejme ze jde ruzne porovnavat a extrahovat casti promennych $_SERVER, ale nejde to i snaze? Je mozne se nejak ze skriptu relativne odkazat primo na root?
Definuj si promennou, napr. $source = "/absolutni_cesta_z_rootu/xxx/yyy/source/";
Pak je rel. cesta $path = $source . "cokoliv/cokoliv";
e nemelo by to jit pres $_SERVER[DOCUMENT_ROOT] ?
Já sem si udělal tuhle funkci. Vkládám ji před každý soubor:
if(!IsSet($kde)) $kde = 0;
$now = $kde+0;
$kde = '.';
for($i=0;$i<$now;$i++):
$kde .= '/..';
endfor;
$GLOBALS['kde'] = $kde;
Pak před vložením tohohle souboru definuju proměnou $kde na vrstvu podadresaře. Mám-li třeba ve složce /etc/next/tady.php, v tady.php nadefinuju $kde = 2.
PS: na nulte urovni to netřeba nastavovat. Jo a pak všechny adresy vypadaj např takto:
<link rel="stylesheet" type="text/css" href="<? echo $GLOBALS['kde'] ?>/zahrnout/styl.css.php">
pro vložení stylu
<a href="<? echo $GLOBALS['kde'] ?>/index.php">Index</a>
pro odkaz na index.
23k, nejspíš ano, jen aby to hodilo root celého wztka, to bysme si nepomohli.
Ještě mě napadá použít v cestě vlnovku. Sice nevím, jestli to bude fungovat, ale rada jako rada:
Soubor
~/ahoj.htm
je umístěn v kořenovém adresáři webu (pokud nepůjde, ještě poradím dát pryč to lomítko).