используя curl от localhost - PullRequest
       3

используя curl от localhost

1 голос
/ 28 апреля 2011

Я просто пытаюсь получить веб-страницу Yahoo. www.yahoo.com

Если я запускаю свой простой скрипт с моего сайта, он работает.

Если я попробую это с моего локального хоста. Все, что я получаю, это ответ заголовка с: "w32.fp.re1.yahoo.com несжатый / чанкий Ср 27 апреля 15:13:48 PDT 2011"

Вот мой код:

    <?php

function curl_download($Url){

    // is cURL installed yet?
    if (!function_exists('curl_init')){
        die('Sorry cURL is not installed!');
    }


    // OK cool - then let's create a new cURL resource handle
    $ch = curl_init();

    // Now set some options (most are optional)

    // Set URL to download
    curl_setopt($ch, CURLOPT_URL, $Url);

    // Set a referer
    curl_setopt($ch, CURLOPT_REFERER, "http://www.example.org/yay.htm");

    // User agent
    curl_setopt($ch, CURLOPT_USERAGENT, "MozillaXYZ/1.0");

    // Include header in result? (0 = yes, 1 = no)
    curl_setopt($ch, CURLOPT_HEADER, 0);

    // Should cURL return or print out the data? (true = return, false = print)
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    // Timeout in seconds
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);

    // Download the given URL, and return output
    $output = curl_exec($ch);

    // Close the cURL resource, and free system resources
    curl_close($ch);

    return $output;
}


print curl_download('http://www.yahoo.com/');
?>

1 Ответ

1 голос
/ 28 апреля 2011

На самом деле результат начинается с

HTTP/1.1 302 Found

, что означает, что там есть заголовок Location. И есть:

Location: http://nl.yahoo.com/?p=us

Это просто тело ответа:

<!-- w20.fp.ird.yahoo.com uncompressed/chunked Wed Apr 27 17:08:09 PDT 2011 -->

Вы должны указать cURL следовать заголовкам Location. Вот и все.

Название опции: CURLOPT_FOLLOWLOCATION. Установите значение true:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

PS
После следующего 1 Заголовка местоположения, это начало тела ответа, когда я запускаю ваш код

<!DOCTYPE html>
<html lang="nl-NL" class="y-fp-bg y-fp-pg-grad  bkt732">
...