Ik heb een functie die ervoor zorgt dat automatisch een directory omhoog gaat als dat nodig is, maar ik kom er ff niet uit om hem te veranderen zodat er ook bijvoorbeeld 2 mappen omhoog kan worden gesprongen. Ik zou het met 2 lussen kunnen doen maar dat vind ik niet mooi ;-).

dit is de functie:

if(!file_exists("index.php"))
{
$strDir = "../";
}
return $strDir;
}

zo gebruik ik m dan:

print("<IMG ALIGN=left SRC=\"". ST_Dir() . "Images/Voorbeeldlogo.bmp\">\n");

Maar als je bijvoorbeeld in de mappen Scripts\Products\ zit gaat t natuurlijk niet werken.



Dan doe je "../../". Waarom zou je het niet met 2 lussen kunnen doen? Je kan ook je functie aanpassen, zodat hij zichzelf nog een keer aanroept als index.php niet gevonden wordt (en er zo automatisch bijvoorbeeld ../../ van maakt)?
Of, gebruik gewoon absolute paden.
Jah, maar dat is zo irritant met kopieer en plakwerk. :)
Als je absolute paden gebruikt hoef je die maar een keer te typen, en het maakt niet uit in welke map jij je bestanden plaatst.

Maar wat jij zoekt is dit;
<?php

function makePath() {
$path = './';
$file = 'index.php';
for($i=0; $i<=10; $i++) {
if(file_exists($path . $file)) {
return $path;
}
$path .= '../';
}
}

?>
Idd, zoiets zoek ik! Super bedankt!
Ik heb hem nu met een while lus gemaakt.

<?php
while(!file_exists($strDir . "index.php"))
{
$strDir = $strDir . "../";
}
print $strDir;
?>

Reageren