cURL как альтернатива функции file_get_contents в PHP
Функция file_get_contents в PHP, при следующем ее использовании:
<?php
$get_page = file_get_contents('https://www.pandoge.com');
echo $get_page;
?>
поможет вам получить информацию с указанного сайта или файла. При парсинге (получении) информации таким способом с других сайтов вы можете не получить желаемый результат ввиду фильтрации сомнительных запросов, ведь через file_get_contents вы не отдаете никаких внятных заголовков к обращаемому сервису.
Чтобы исправить это и получить нужную информацию, и существует cURL. Он умеет и отдавать заголовки (включая агент браузера), и переходить по возможным редиректам.
Чтобы не быть многословным – функция для получения данных выглядит так:
function file_get_contents_alt($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, filter_input(INPUT_SERVER, 'HTTP_USER_AGENT', FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW));
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;
}
Ее вы вставляете сразу после <?php в вашем скрипте, а использование следующее:
echo file_get_contents_alt("https://www.pandoge.com");
Получаемые данные можно сразу не выводить, а, например, присвоить к переменной для дальнейшей их обработки.