php - 索引 "server_name"不存在

标签 php variables constants global

我尝试执行一个 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/

相关文章:

javascript - 未为立即调用的函数提升 const 变量

c++ - 在 const 成员函数中使用 this 指针 (C++)

php - Laravel 广播 auth 路由简单地返回 "true"

python - 如何将列表中的每个元素分配给单独的变量?

php - Perl 有类似于 PHP 的 constant() 的东西吗?

variables - Swift - 替换字符串中的字符

java - switch case 中需要的常量表达式

php - 使用 symfony2 包含文件

php - 对于 Prestashop : use 2 query for value with IF ELSE. 。如何声明新变量?

php - 注册用户(php 和 mysql)而不是将用户插入 mysql(没有错误)