-1

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

誰かが私に次のことを説明できますか:ブラウザでURLを要求しても、問題はありません(すべて正常に動作します)。しかし、PHPのfile_get_contentsを使用してURLを要求すると、リダイレクトループが発生します。

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

このループはJSによって行われていることがわかりましたが、PHPでこれを解決する方法がわかりません。代わりにcurlを使用する必要がありますか?しかし、JavaScriptによって行われるこのリダイレクトをどのように追跡できますか?

あなたが私を助けてくれることを願っています、ありがとう!

4

1 に答える 1

1

file_get_contents()データを取得するために使用する代わりにcurl:

データをクライアントとして表し、

これにより、さまざまな種類のプロトコルを使用して、さまざまな種類のサーバーに接続して通信できます。libcurl は現在、http、https、ftp、gopher、telnet、dict、file、および ldap プロトコルをサポートしています。

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 が curl でサイトをリダイレクトすることを許可していないためです。php で curl を使用してリダイレクトに従ってください。

于 2013-02-22T16:41:08.273 に答える