是否可以处理来自其他网站的重定向,并能够获取其他网站指向的新网址?
我试图在另一个网站上使用file_get_contents
并让脚本每天运行一次,但是,我从中获取内容的URL中有一个哈希码,每天都在变化。
例如:http://website.com/data/kkLs31
是我从中获取内容的页面,kkLs31
每天都会更改为完整的不同代码,但是当您访问旧链接时,即使它已更改,其服务器也是如此只会将您重定向到新的"代码"无论你把什么放在浏览器中。
因此我需要处理他们将您重定向到新代码,获取新代码并将其传递到我的服务器上,这样我就可以随时从中获取内容。
我不确定这是否可能,但我认为应该有一些我可以做的事。
如果这没有意义,我很乐意详细说明。
答案 0 :(得分:2)
使用curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://website.com/data/kkLs31');
curl_setopt($ch, CURLOPT_HEADER, true); // your answer will be in the header
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$a = curl_exec($ch);
接下来,您可以使用以下内容获取网址:
preg_match("!\r\n(?:Location|URI): *(.*?) *\r\n!", $a, $matches);
$url = $matches[1];
OR
使用简单的var_dump($a)
找到答案
注:
看看CURLOPT_FOLLOWLOCATION
如何设置为false,这是因为true会继续转发你。 False不会转发给您,但会提供您希望转发的网址。