Я пытаюсь загрузить файл с этого URL-адреса в php: http://www.roblox.com/Asset/BodyColors.ashx?userId=36377783
Страница возвращает файл, который автоматически загружает ваш веб-браузер.
Я пробовал использовать cURL:
<?php $uid = 36377783; $xUrl = "http://www.roblox.com/Asset/BodyColors.ashx?userId=".$uid; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $xUrl); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); $xml = curl_exec($ch); curl_close($ch); echo $xml; ?>
Но он перенаправляет меня на страницу с ошибкой.
Как загрузить файл, возвращаемый URL-адрес .ashx?
(Настройка CURLOPT_USERAGENT не работает.)
Существует перенаправление – я использую file_get_contents()
(но почему бы не завивать) и $http_response_header
:
$uid = 36377783; $xUrl = "http://www.roblox.com/Asset/BodyColors.ashx?userId=".$uid; $opts = array( 'http'=>array( 'method'=>"GET", 'follow_location' => true, 'header'=> "Host: www.roblox.com\r\n" . "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\r\n" . "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n" . "Accept-Encoding: gzip, deflate\r\n" . "DNT: 1\r\n" ) ); $context = stream_context_create($opts); $xml = file_get_contents($xUrl, false, $context); #print_r($http_response_header); $url_redirect = str_replace('Location: ',"",$http_response_header[5]); #print $url_redirect; $xml = file_get_contents($url_redirect); #print_r($xml); $roblox_responses = new SimpleXMLElement($xml); print_r($roblox_responses);