我可以获取包含文件中最初调用的PHP文件的路径吗?

时间:2020-03-06 14:47:11  来源:igfitidea点击:

假设我们有index.php,它存储在/ home / user / public / www中,index.php从文件inc / app / Foo中调用类Foo-> bar()。 .class.php

在这种情况下,我希望Foo类中的bar函数可以保留路径/ home / user / public / www,但我不想使用全局变量,不传递变量等。

解决方案

找到了。 getcwd()。

我们可以使用debug_backtrace查看调用路径,并获取调用此函数的文件。

一个简短的例子:

class Foo {
  function bar() {    
   $trace = debug_backtrace();
   echo "calling file was ".$trace[0]['file']."\n";
  }
}

getcwd()获取当前工作目录

第三方模块可以出于多种原因对其进行更改,包括发出chdir()甚至包括我们自己的代码。

德文郡(Devon)建议的debug_backtrace()是我们要寻找的答案。

这样会不会更轻松地为我们提供正在运行的脚本的目录?

$dir=dirname($_SERVER["SCRIPT_FILENAME"])