相当于在终端中运行 php 时运行 $_SERVER['DOCUMENT_ROOT']
我想知道当我像这样调用 PHP 时是否有一些变量会返回 $_SERVER['DOCUMENT_ROOT'] 返回的内容: ./somescript
如果没有,人们如何解决这种情况?我希望能够在网络浏览器和终端中调用相同的脚本(模板编译器)。
谢谢! 马特·穆勒
I was wondering if there is some variable that will return what $_SERVER['DOCUMENT_ROOT'] returns when I call PHP like this: ./somescript
If not, how do people get around this case? I'm looking to be able to call the same script (a template compiler) in both the web browser and the terminal.
Thanks!
Matt Mueller
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我不建议为此使用
getcwd()
命令,因为除非您创建了chdir
,否则您无法确定cwd
指向哪里之前(这意味着您已经知道您所在的目录)。工作目录可以在 php 配置中定义,并且在 apache 和 CLI 之间有所不同,并且一些 php 框架会在启动时更改它。使用 dirname(__FILE__) ,无论您是在 apache 还是 cli 上下文中,它总是可以工作(而且它可以在 Windows 和 unix 上工作),如果您需要在项目文件中移动,您只需使用相对路径。
I don't recommend the
getcwd()
command for this because you cannot be sure of wherecwd
is pointing unless you've made achdir
before (which mean you already know which directory you're in). Working directory can be define in php config and vary between apache and CLI, and some php frameworks changes it on startup.Use
dirname(__FILE__)
it always works wether you're in a apache or cli context (plus it works on windows and unix), and if you need to move inside your project files you can just use relative paths.我认为你应该使用 getcwd 函数来获取当前目录(或者只是 dirname(__FILE__) 如果您的脚本是最上面的)。然后您只需确保从 DOCUMENT_ROOT 运行脚本即可。像这样的事情:
I think you should use getcwd function to obtain current directory (or just dirname(__FILE__) if your script is the top one). Then you only need to be sure to run the script from your DOCUMENT_ROOT. Something like this:
硬编码文档根目录。
硬编码始终是解决方案
hardcode document root in it.
hardcode is always a solution