Подтвердить что ты не робот

Как использовать CURL вместо file_get_contents?

Я использую функцию file_get_contents для получения и отображения внешних ссылок на моей конкретной странице.

В моем локальном файле все в порядке, но мой сервер не поддерживает функцию file_get_contents, поэтому я попытался использовать cURL с приведенным ниже кодом:

function file_get_contents_curl($url) {
    $ch = curl_init();

    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $url);

    $data = curl_exec($ch);
    curl_close($ch);

    return $data;
}

 echo file_get_contents_curl('http://google.com');

Но он возвращает пустую страницу. Что не так?

4b9b3361

Ответ 1

попробуйте следующее:

function file_get_contents_curl($url) {
    $ch = curl_init();

    curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);       

    $data = curl_exec($ch);
    curl_close($ch);

    return $data;
}

Ответ 2

Это должно работать

function curl_load($url){
    curl_setopt($ch=curl_init(), CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $response = curl_exec($ch);
    curl_close($ch);
    return $response;
}

$url = "http://www.google.com";
echo curl_load($url);

Ответ 3

//Вы можете попробовать это. Он должен работать нормально.

function curl_tt($url){

$ch = curl_init();

curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);  
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 3);     
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
$data = curl_exec($ch);
curl_close($ch);

return $data;
}
echo curl_tt("https://google.com");

Ответ 4

Я столкнулся с такой проблемой при доступе к контенту Google Диска по прямой ссылке.

После вызова file_get_contents возвращено 302 временно перемещено

//Any google url. This example is fake for Google Drive direct link.
$url = "https://drive.google.com/uc?id=0BxQKKJYjuNElbFBNUlBndmVHHAj";
$html = file_get_contents($url);
echo $html; //print none because error 302.

С кодом ниже это снова работает:

//Any google url. This example is fake for Google Drive direct link.
$url = "https://drive.google.com/uc?id=0BxQKKJYjuNElbFBNUlBndmVHHAj";

$ch = curl_init();
curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);  
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 3);     
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
$html = curl_exec($ch);
curl_close($ch);

echo $html;

Я проверял это сегодня, 19.03.2008

Ответ 5

///////////////// / ---------------RESPONSE

    $response_url = $api_payment[3];
    $feedback = array(
        'amount' => "$DepositData[2]",
        'paidby' => "guest",
        'payto' => "$api_payment[1]",
        'custom' => "$api_payment[6]",
        'trx' => "$trx",
        'secret' => "$ct[1]"
    );

    $finalCallUrl = add_query_var($response_url, $feedback);
    $letshit = file_get_contents($finalCallUrl);

///////////////// / ---------------RESPONSE

    $urrl= "$api_payment[4]";
    redirect($urrl);

Как бы заменить "file_get_contents" на cURL?

Ответ 6

Сколько времени нужно, чтобы получить ответ на новый вопрос? Мне сказали создать новый вопрос, и это то, что я сделал, но никто не отвечает на него. Это как-то связано с этой темой, но не совсем так, и кто-то сказал мне просто прочитать этот вопрос, но этот вопрос не отвечает на мой вопрос! Вот мой вопрос: как заменить file_get_contents на cURL для ответа API/уведомлений?