Как использовать 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');
Но он возвращает пустую страницу. Что не так?
Ответы
Ответ 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/уведомлений?