我正在尝试获取服务器重定向网址 . 我试过了
function http_head_curl($url,$timeout=10)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); // in seconds
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$res = curl_exec($ch);
if ($res === false) {
throw new RuntimeException("cURL exception: ".curl_errno($ch).": ".curl_error($ch));
}
return trim($res);
}
echo http_head_curl("http://www.site.com",$timeout=10);
结果是;
HTTP / 1.1 301永久移动日期:太阳,2013年5月12日23:34:22 GMT服务器:LiteSpeed连接:关闭X-Powered-By:PHP / 5.3.23 Set-Cookie:PHPSESSID = 0d4b28dd02bd3d8413c92f71253e8b31;路径= /; HttpOnly X-Pingback:http://site.com/xmlrpc.php Content-Type:text / html; charset = UTF-8位置:http://site.com/ HTTP / 1.1 200 OK日期:太阳,2013年5月12日23:34:23 GMT服务器:LiteSpeed连接:关闭X-Powered-By:PHP / 5.3.23 Set-Cookie:PHPSESSID = 630ed27f107c07d25ee6dbfcb02e8dec;路径= /; HttpOnly X-Pingback:http://site.com/xmlrpc.php Content-Type:text / html;字符集= UTF-8
它显示几乎所有 Headers 信息,但不显示重定向的位置 . 如何获取重定向的页面网址?
3 回答
完成CURL请求后,将curl_getinfo与CURLINFO_EFFECTIVE_URL选项一起使用 . 完成 .
与其他(复杂)答案相比,这将为您提供您的请求“最终”的完整URL .
这是
Location
Headers .