我想知道当我像这样调用 PHP 时是否有一些变量会返回 $_SERVER['DOCUMENT_ROOT'] 返回的内容:./somescript
如果不是,人们如何绕过这个案子?我希望能够在 Web 浏览器和终端中调用相同的脚本(模板编译器)。
谢谢!马特·穆勒
我不推荐这个getcwd()
命令,因为你不能确定cwd
指向哪里,除非你已经做了一个chdir
before(这意味着你已经知道你在哪个目录)。工作目录可以在 php config 中定义,并且在 apache 和 CLI 之间有所不同,并且一些 php 框架会在启动时更改它。
无论您是在 apache 还是 cli 上下文中,都可以使用dirname(__FILE__)
它(而且它适用于 windows 和 unix),如果您需要在项目文件中移动,您可以使用相对路径。
我认为你应该使用getcwd函数来获取当前目录(或者如果你的脚本是顶部的,则只是dirname (__FILE__) )。然后你只需要确保从你的 DOCUMENT_ROOT 运行脚本。像这样的东西:
cd /var/www/
php ./scripts/top.php
硬编码文档根目录。
硬编码始终是一种解决方案