如何访问我在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,但不认为这是问题。
想法吗?
如果您在web服务器配置中设置服务器变量,那么当您通过命令行访问PHP时,它们将不存在。(因为web服务器根本不会参与)
要在CLI PHP脚本中使用$_SERVER
变量,请参见:从命令行调用PHP时设置$_SERVER变量?
总结:
run: VALUE_ONE=1 ANOTHER_VALUE=2 php cli.php
一些$_SERVER变量不能从命令行访问,这是合乎逻辑的,当使用命令行时,您不指定方法(GET/POST等),那么您期望$_SERVER["HTTP_METHOD"]是什么?
获取$_SERVER中设置的所有变量的一种解决方案是转储它:
var_dump($_SERVER);
然后从命令行调用文件,查看设置了哪些变量。
除此之外,在使用$_SERVER变量时一定要小心,它的行为实际上取决于平台和其他因素。
always try:
if(isset($_SERVER["MY_VAR"])) {
// do what you want here
}