2

我尝试执行 bat,并在此文件中尝试访问此变量:

$_SERVER['SERVER_NAME']

但它不存在这个索引。事实上,当我尝试时print_r($_SERVER),没有 SERVER_NAME索引。有原因吗?是因为我在 bat 中启动了这个功能吗?我有其他解决方案来获取这个变量吗?

谢谢 !

4

3 回答 3

7

这些$_SERVER变量仅在服务器环境中可用(通过 Apache 或其他 Web 服务器托管 PHP),因此如果您从命令行启动它,它们将不可用。此对象的参数由 HTTP 标头填充,在您的情况下不存在。

如果您想在未设置$_SERVER时忽略该对象,您可以替代使用,但您的里程可能会因操作系统而异。SERVER_NAMEphp_uname("n")

$server_name = (isset($_SERVER['SERVER_NAME']))? // check if SERVER_NAME is set
    $_SERVER['SERVER_NAME'] :                    // if yes, use HTTP header value
    php_uname("n");                             // if no, use php_uname()
于 2012-11-05T14:31:34.097 回答
1

尝试

echo %COMPUTERNAME%

相反,如果您通过 bat 文件启动。

于 2012-11-05T14:31:56.820 回答
0

$_SERVER['SERVER_NAME']变量包含 HTTP 客户端在Host HTTP 标头字段中提供的服务器名称。因为您不使用 HTTP,所以未定义此变量。

于 2012-11-05T14:31:48.073 回答