带有javascript重定向的php file_get_contents

时间:2013-02-22 16:36:29

标签: php

url = http://www.homegate.ch/mieten/immobilie-suchen

有人可以向我解释以下内容:当我在浏览器中请求网址时,没有问题(一切正常)。但如果我使用PHP的file_get_contents请求url,则会有一个重定向循环:

echo file_get_contents('http://www.homegate.ch/mieten/immobilie-suchen');

我发现,这个循环是由JS完成的,但我不知道如何用PHP解决这个问题。我应该使用卷曲吗?但我怎么能遵循这个由javascript完成的重定向?

希望你能帮助我,谢谢!

1 个答案:

答案 0 :(得分:1)

而不是file_get_contents()使用curl来获取数据:

它将数据表示为客户端,

  

允许您使用许多不同类型的协议连接并与许多不同类型的服务器通信。 libcurl目前支持http,https,ftp,gopher,telnet,dict,file和ldap protocols`

function get_data ($uri) {
    if (!function_exists('curl_init')){ 
    die('Curl is not installed!');
    }

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $uri);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $output = curl_exec($ch);
    curl_close($ch);
    return $output;
}

如果没有解决这个问题,这是因为Javascript不允许卷曲重定向网站:follow redirects with curl in php