Ошибка HTTP 403 с php curl

Я хочу сделать http-запрос с помощью curl, но не могу получить правильный ответ от сервера.

$url переменная заполняется строкой: "http://www.transfermarkt.de/borussia-dortmund/startseite/verein/16/index.html"

function request($url) {

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$result = curl_exec($ch);
$statuscode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$statustext = curl_getinfo($ch);
curl_close($ch);
if($statuscode!=200){
echo "HTTP ERROR ".$statuscode."<br>";
echo "<pre>";
echo var_dump($statustext);
echo "</pre>";
return "false";

}
return $result;
}

2

Решение

Этот веб-сайт проверяет на действительность User-Agent заголовок, который клиент cURL PHP не предоставляет по умолчанию (хотя клиент командной строки делает). Чтобы преодолеть это, вы можете добавить:

curl_setopt($ch, CURLOPT_USERAGENT, 'User-Agent: curl/7.39.0');

или похожие.

Изменить: полный код успешно протестирован:

<?php

function request($url){
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1);

curl_setopt($ch, CURLOPT_USERAGENT, 'User-Agent: curl/7.39.0');

$result = curl_exec($ch);
$statuscode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$statustext = curl_getinfo($ch);
curl_close($ch);
if($statuscode!=200){
echo "HTTP ERROR ".$statuscode."<br>";
echo "<pre>";
echo var_dump($statustext);
echo "</pre>";
return "false";

}
return $result;
}

echo request('http://www.transfermarkt.de/borussia-dortmund/startseite/verein/16/index.html');

?>
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]