如果发生重定向,如何在file_get_contents后获取真正的URL?
我用来从网站获取内容,令人惊讶的是,即使我作为参数传递的URL重定向到另一个URL,它也可以正常工作。file_get_contents()
问题是我需要知道新的URL,有没有办法做到这一点?
我用来从网站获取内容,令人惊讶的是,即使我作为参数传递的URL重定向到另一个URL,它也可以正常工作。file_get_contents()
问题是我需要知道新的URL,有没有办法做到这一点?
如果您需要使用而不是 curl,请不要自动关注重定向:file_get_contents()
$context = stream_context_create(
array(
'http' => array(
'follow_location' => false
)
)
);
$html = file_get_contents('http://www.example.com/', false, $context);
var_dump($http_response_header);
您可以使用 cURL 而不是 发出请求。file_get_contents()
像这样的东西应该有效...
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$a = curl_exec($ch);
if(preg_match('#Location: (.*)#', $a, $r))
$l = trim($r[1]);