我知道当我将CURLOPT_FOLLOWLOCATION设置为true时,cURL将跟随Location标头并重定向到新页面.但是有可能只获得新页面的标题而不实际重定向吗?还是不可能?
似乎是PHP cURL的副本:获取重定向目标,而不是遵循它
但是,这可以通过3个简单的步骤完成:
步骤1.初始化卷曲
curl_init($ch); //initialise the curl handle
//COOKIESESSION is optional, use if you want to keep cookies in memory
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
Run Code Online (Sandbox Code Playgroud)
第2步.获取标题 $url
curl_setopt($ch, CURLOPT_URL, $url); //specify your URL
curl_setopt($ch, CURLOPT_HEADER, true); //include headers in http data
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false); //don't follow redirects
$http_data = curl_exec($ch); //hit the $url
$curl_info = curl_getinfo($ch);
$headers = substr($http_data, 0, $curl_info["header_size"]); //split out header
Run Code Online (Sandbox Code Playgroud)
步骤3.解析标头以获取新URL
preg_match("!\r\n(?:Location|URI): *(.*?) *\r\n!", $headers, $matches);
$url = $matches[1];
Run Code Online (Sandbox Code Playgroud)
获得新网址后,您可以随时重复步骤2-3.