¿Puedo obtener la ruta del archivo PHP originalmente llamado dentro de un archivo incluido?
Pregunta
Supongamos que tenemos index.php
y está almacenado en / home / user / public / www
y index.php
llama al class Foo- > bar ()
del archivo inc / app / Foo.class.php
.
Me gustaría que la función de barra en la clase Foo
consiga la ruta / home / user / public / www
en este caso, no lo hago. No quiero usar una variable global, pasar una variable, etc.
Solución
¿No le daría esto el directorio del script en ejecución más fácilmente?
$dir=dirname( ¿No le daría esto el directorio del script en ejecución más fácilmente?
<*>SERVER["SCRIPT_FILENAME"])
Otros consejos
Puede usar debug_backtrace para ver la ruta de llamada y obtener el archivo que llama a esta función.
Un breve ejemplo:
class Foo {
function bar() {
$trace = debug_backtrace();
echo "calling file was ".$trace[0]['file']."\n";
}
}
getcwd ()
obtiene el directorio de trabajo actual
Se puede cambiar por diversos motivos mediante módulos de terceros, incluye o incluso su propio código emitiendo un chdir ()
.
debug_backtrace ()
como Devon sugirió es la respuesta que estás buscando.
Lo encontré. getcwd ().