上次加载的CURL资源的URL

时间:2014-09-01 23:58:10

标签: php curl

我用CURL写了一些复杂的东西。我碰巧遇到了一个情况,我需要知道CURL加载的最后一个网址(如果它被重定向),或者只是来自curl_init($url)的原始网址。

我想如果它被重定向,我可以解析Location标题:

if(preg_match('/^Location:(.*)$/mi', $headers, $matches)>0) {
   echo "Final location is: {$matches[1]}\n";  //We know location thanks to follow location
}
else {
   echo "Well, I'm doomed...\n";  //We don't know anything
}

顺便说一句,这就是我不太喜欢PHP资源的原因。

再想一想我意识到上面的脚本无效 - 您在重定向时加载的最后一页不会发送任何Location标头。否则,您将再次被重定向!

1 个答案:

答案 0 :(得分:2)

试试这个:

$last_URL = curl_getinfo ( $ch ,CURLINFO_EFFECTIVE_URL   );

P.S:如果CURL达到重定向限制或CURLOPT_FOLLOWLOCATION设置为假(例如在安全模式下),则应检查位置标题。