Posso ottenere il percorso del file PHP originariamente chiamato all'interno di un file incluso?
Domanda
Diciamo che abbiamo index.php
ed è memorizzato in / home / user / public / www
e index.php
chiama il class Foo- > bar ()
dal file inc / app / Foo.class.php
.
Vorrei che la funzione bar nella classe Foo
ottenga una sospensione del percorso / home / user / public / www
in questo caso & # 8212; Non voglio usare una variabile globale, passare una variabile, ecc.
Soluzione
Questo non ti porterebbe più facilmente alla directory dello script in esecuzione?
$dir=dirname( Questo non ti porterebbe più facilmente alla directory dello script in esecuzione?
<*>SERVER["SCRIPT_FILENAME"])
Altri suggerimenti
Puoi usare debug_backtrace per guardare il percorso di chiamata e ottenere il file che chiama questa funzione.
Un breve esempio:
class Foo {
function bar() {
$trace = debug_backtrace();
echo "calling file was ".$trace[0]['file']."\n";
}
}
getcwd ()
ottiene la directory di lavoro corrente
Può essere modificato per una serie di motivi da moduli di terze parti, include o persino il proprio codice emettendo un chdir ()
.
debug_backtrace ()
come suggerito Devon è la risposta che stai cercando.
Trovato. getcwd ().