一尘不染

如果发生重定向,如何在file_get_contents之后获取真实URL?

php

我正在file_get_contents()从网站上获取内容,而且即使我作为参数传递的URL重定向到另一个URL,它也可以正常工作。

问题是我需要知道新的URL,有没有办法做到这一点?


阅读 517

收藏
2020-05-26

共1个答案

一尘不染

您可以使用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]);

资源

2020-05-26