gpt4 book ai didi

PHP:已弃用 register_long_arrays (HTTP_*_VARS)

转载 作者:行者123 更新时间:2023-12-01 22:43:37 25 4
gpt4 key购买 nike

我最近更新到 PHP 5.3.6,其中有一些已弃用的函数和 INI 指令。我有以下功能:

function ServerVar($varName) {
global $HTTP_SERVER_VARS;
global $HTTP_ENV_VARS;

if(!isset($_SERVER))
{
$_SERVER = $HTTP_SERVER_VARS;
if(!isset($_SERVER["REMOTE_ADDR"]))
$_SERVER = $HTTP_ENV_VARS; // must be Apache
}

if(isset($_SERVER[$varName]))
return $_SERVER[$varName];
else
return "";
}

运行该函数导致 apache 日志中出现错误:

<b>Deprecated</b>:  Directive 'register_long_arrays' is deprecated in PHP 5.3 and greater in <b>Unknown</b> on line <b>0</b><br />

我修改了这样的代码:

if(!isset($_SERVER))
{
$_SERVER = &$HTTP_SERVER_VARS;
if(!isset($_SERVER["REMOTE_ADDR"]))
$_SERVER = &$HTTP_ENV_VARS; // must be Apache
}

if(isset($_SERVER[$varName]))
return $_SERVER[$varName];
else
return "";
}

但是相同的错误仍然出现在 apache 日志中。解决此问题的最佳方法是什么?

谢谢!!

最佳答案

在 PHP 5.3 中(真的,我认为任何版本的 PHP 5 或更高版本 any version of PHP newer than 4.1.0)你永远不需要使用 $HTTP_SERVER_VARS $HTTP_ENV_VARS。只需使用 $_SERVER。如果这不起作用,那么您的服务器需要修复其配置;不是像这样诱导的代码解决方法。

关于PHP:已弃用 register_long_arrays (HTTP_*_VARS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6963595/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com