【发布时间】:2011-06-15 14:30:14
【问题描述】:
这适用于 Apache,为什么它似乎不适用于 IIS 7?
if(!function_exists('apache_request_headers')) {
function apache_request_headers() {
$headers = array();
foreach($_SERVER as $key => $value) {
if(substr($key, 0, 5) == 'HTTP_') {
$headers[str_replace(' ', '-', ucwords(str_replace('_', ' ', strtolower(substr($key, 5)))))] = $value;
}
}
return $headers;
}
}
function getCurrentPageUrl() {
$pageURL = 'http';
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
return $pageURL;
}
$a = apache_request_headers();
$pos = strrpos($a["User-Agent"], "REBOL");
【问题讨论】:
-
您能否将
echo "<pre>", htmlspecialchars(print_r($_SERVER, true)), "</pre>"的输出添加到您的问题中? -
请注意:这不会捕获所有标头字段,例如“Content-Type”或“Content-Length”,因为它们在 $_SERVER 中没有以“HTTP_”为前缀。