如何访问我在PHP中从命令行设置的$ _SERVER变量?
当我尝试调用我创建的PHP方法时,我收到以下错误,这表明所有$_SERVER
变量仅在通过其URL调用我的应用程序时定义,即webserver:
ERROR - Undefined index: MY_VAR /www/html/some_file.php
ERROR - Undefined index: MY_OTHER_VAR /www/html/some_file.php
更具体地说,我正在使用Codeigniter,但不相信这是问题。
思想?
答案 0 :(得分:6)
如果您在Web服务器配置中设置服务器变量,那么当您通过命令行访问PHP时,它们将不会出现。 (因为网络服务器根本不参与。)
要在CLI PHP脚本中使用$_SERVER
变量,请参阅:Set $_SERVER variable when calling PHP from command line?
总结:
运行:VALUE_ONE=1 ANOTHER_VALUE=2 php cli.php
答案 1 :(得分:0)
某些$ _SERVER变量无法从命令行访问,这是合乎逻辑的,当使用命令行时,您没有指定方法(GET / POST等),那么您期望什么$ _SERVER [“HTTP_METHOD”是的?
获取$ _SERVER中设置的所有变量的一个解决方案是转储它:
var_dump($_SERVER);
然后从命令行调用您的文件以查看设置了哪些变量。
除此之外,使用$ _SERVER变量时要小心,其行为实际上取决于平台和其他因素。
总是尝试:
if(isset($_SERVER["MY_VAR"])) {
// do what you want here
}