1

如何访问我在 PHP 命令行中设置的 $_SERVER 变量?

当我尝试调用我创建的 PHP 方法时,我收到以下错误,这表明所有$_SERVER变量仅在通过其 URL 调用我的应用程序时定义,即网络服务器:

ERROR - Undefined index: MY_VAR /www/html/some_file.php
ERROR - Undefined index: MY_OTHER_VAR /www/html/some_file.php

更具体地说,我正在使用Codeigniter,但不要认为这是问题所在。

想法?

4

2 回答 2

8

如果您在 Web 服务器配置中设置服务器变量,那么当您通过命令行访问 PHP 时它们将不存在。(因为根本不会涉及 Web 服务器。)

要在 CLI PHP 脚本中使用$_SERVER变量,请参阅:从命令行调用 PHP 时设置 $_SERVER 变量?


总结一下:

跑:VALUE_ONE=1 ANOTHER_VALUE=2 php cli.php

于 2014-06-18T14:10:58.027 回答
0

某些 $_SERVER 变量无法从命令行访问,这是合乎逻辑的,在使用命令行时,您没有指定方法(GET/POST 等),那么您期望 $_SERVER["HTTP_METHOD"] 是什么?

获取 $_SERVER 中设置的所有变量的一种解决方案是转储它:

var_dump($_SERVER);

然后从命令行调用您的文件以查看设置了哪些变量。

除此之外,在使用 $_SERVER 变量时要小心,它的行为实际上取决于平台和其他因素。

总是尝试:

if(isset($_SERVER["MY_VAR"])) {
  // do what you want here
}
于 2014-06-18T14:17:32.090 回答