¿Puedo obtener la ruta del archivo PHP originalmente llamado dentro de un archivo incluido?

StackOverflow https://stackoverflow.com/questions/139794

  •  02-07-2019
  •  | 
  •  

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.

¿Fue útil?

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 ().

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top