Php curl некорректная загрузка - PullRequest
0 голосов
/ 10 февраля 2012

Я пытаюсь использовать API YouTube, чтобы получить список видео и отобразить их.Чтобы сделать это, мне нужно свернуть их API и получить возвращенный XML-файл, который я затем проанализирую.

Когда я запускаю следующую функцию curl

function get_url_contents($url){
        $crl = curl_init();
        $timeout = 5;
        curl_setopt ($crl, CURLOPT_URL,$url);
        curl_setopt ($crl, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt ($crl, CURLOPT_CONNECTTIMEOUT, $timeout);
        $ret = curl_exec($crl);
        curl_close($crl);
        return $ret;
}

для URL

http://gdata.youtube.com/feeds/api/videos?q=Apple&orderby=relevance

Сохраненная строка ужасно испорчена.В большинстве из них нет тегов <> или половины символов.Это выглядит на 100% иначе, если я смотрю в браузере.

Я пробовал print, echo и var dump, и все они показывают, что он совершенно другой, что делает его разбор невозможным.

Как правильно получить файл с сервера?

Ответы [ 2 ]

2 голосов
/ 10 февраля 2012

Это работает для меня. Я уверен, что файл возвращается без ошибок, но при его печати теги <> не отображаются. Но если вы посмотрите на исходный код, вы можете увидеть их.

Попробуйте, вы можете увидеть, как это работает:

$content = get_url_contents('http://gdata.youtube.com/feeds/api/videos?q=Apple&orderby=relevance');
$xml = simplexml_load_string($content);
print_r($xml);
1 голос
/ 10 февраля 2012

Воспользуйтесь клиентской библиотекой, которую предоставляет Google, она облегчит вашу жизнь.

http://code.google.com/apis/youtube/2.0/developers_guide_php.html

...