【问题标题】:Index "server_name" not exist索引“server_name”不存在
【发布时间】:2012-11-05 14:28:28
【问题描述】:

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

$_SERVER['SERVER_NAME']

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

谢谢!

【问题讨论】:

    标签: php variables constants global


    【解决方案1】:

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

    如果您想在未设置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()
    

    【讨论】:

    【解决方案2】:

    试试

    echo %COMPUTERNAME%
    

    如果您通过 bat 文件启动。

    【讨论】:

      【解决方案3】:

      $_SERVER['SERVER_NAME'] 变量保存由 HTTP 客户端在 Host HTTP 标头字段中提供的服务器名称。因为不使用 HTTP,所以没有定义这个变量。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-05-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-30
        • 2014-02-26
        相关资源
        最近更新 更多