我可以获取包含文件中最初调用的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"])