我尝试执行一个 bat,在这个文件中我尝试访问这个变量:
$_SERVER['SERVER_NAME']
但它不存在这个索引。事实上,当我尝试 print_r($_SERVER)
时,没有 SERVER_NAME
索引。有原因吗?是因为我在 bat 中启动了这个功能吗?
我有其他解决方案来获取这个变量吗?
谢谢!
最佳答案
$_SERVER
变量仅在服务器环境中可用(通过 Apache 或其他 Web 服务器托管 PHP),因此如果您从命令行启动它,它们将不可用。此对象的参数由 HTTP header 填充,在您的情况下不存在。
如果您想在 SERVER_NAME
未设置时忽略 $_SERVER
对象,您可以替代使用 php_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()
关于php - 索引 "server_name"不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13234122/