Posso obter o caminho do arquivo PHP originalmente chamado de dentro de um arquivo incluído?
Pergunta
Vamos dizer que temos index.php
e ele é armazenado em /home/user/public/www
e index.php
chama a Foo->bar()
classe do inc/app/Foo.class.php
arquivo.
Eu gostaria a função bar na classe Foo
para obter um porão do /home/user/public/www
caminho neste exemplo -. Eu não quero usar uma variável global, passar uma variável, etc
Solução
Não seria isso te o diretório do script em execução mais facilmente?
$dir=dirname($_SERVER["SCRIPT_FILENAME"])
Outras dicas
Você pode usar debug_backtrace de olhar para o caminho chamando e obter o arquivo de chamar esta função.
Um exemplo curto:
class Foo {
function bar() {
$trace = debug_backtrace();
echo "calling file was ".$trace[0]['file']."\n";
}
}
getcwd()
recebe o diretório de trabalho atual
Ele pode ser alterado para uma variedade de razões por módulos 3rd party, inclui ou mesmo o seu próprio código, emitindo uma chdir()
.
debug_backtrace()
como Devon sugerida é a resposta que você está procurando.
A ele. getcwd ().