1
我最近更新到PHP 5.3.6,並且有一些不推薦使用的函數和INI指令。我有以下功能:PHP:register_long_arrays棄用(HTTP _ * _ VARS)
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 />
我modfied這樣的代碼:
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日誌中。解決這個問題的最好方法是什麼?
謝謝!
對不起。該代碼在4年前實施。我只是在做一些維護:(它是痛苦的,因爲代碼是按照FO而不是OO :( –
@坦納:沒有理由感到抱歉。:)希望你的將來有更少的跆拳道:) –
'$ _SERVER '自從PHP 4.1.0發佈以來,實際上已經存在了,它是在近十年前(2001年12月)發佈的。任何古代都有更大的問題。 :) – duskwuff