Правильный ответ на вопрос:
Возможно, у вас возникла та же проблема, что и в этом вопросе: CURL и HTTPS, "Не удается разрешить хост" (DNS-Issue)
Другие детали:
Вы можете использовать SimpleXML для загрузки и сохранения данных XML
$xml = new SimpleXMLElement('https://gdata.youtube.com/feeds/api/users/manitobachildhealth/favorites', NULL, TRUE);
$xml->asXML('video.xml');
IЯ проверил приведенный выше код на сервере WAMP, и он работает нормально.
Обновление: Если приведенное выше возвращает сообщение об ошибке "[simplexmlelement .-- construct]: предупреждение ввода / вывода: не удалосьзагрузить внешнюю сущность .... "Возможно, ваш сервер не позволяет включать внешние данные или у php-файла / сценария нет необходимых прав доступа.
Попробуйте выполнить следующее:1. Отобразите содержимое XML-файла.
$xml = new SimpleXMLElement('https://gdata.youtube.com/feeds/api/users/manitobachildhealth/favorites', NULL, TRUE);
echo htmlentities($xml->asXML());
Если вам удалось извлечь XML-содержимое и распечатать его в браузере, то ваш сервер позволяет включать внешний контент и, скорее всего, проблема сразрешение файла.Убедитесь, что у файла / скрипта есть право на создание XML-файла.
Если вышеописанное не помогает, попробуйте использовать cURL.
<code>function getPageContent($options)
{
$default = array(
'agent' => $_SERVER['HTTP_USER_AGENT'],
'url' => '',
'referer' => 'http://'.$_SERVER['HTTP_HOST'],
'header' => 0,
'timeout' => 5,
'user' => '',
'proxy' => '',
);
$options = array_merge($default, $options);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $options['url']);
curl_setopt($ch, CURLOPT_HEADER, $options['header']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
if ($options['proxy'] != '') {
curl_setopt($ch, CURLOPT_PROXY, $options['proxy']);
}
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 0);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $options['timeout']);
curl_setopt($ch, CURLOPT_REFERER, $options['referer']);
curl_setopt($ch, CURLOPT_USERAGENT, $options['agent']);
if ($options['user'] != '') {
curl_setopt($ch, CURLOPT_PROXYUSERPWD, $options['user']);
}
$result = array();
$result['content'] = curl_exec($ch);
$result['info'] = curl_getinfo($ch);
$result['error'] = curl_error($ch);
curl_close($ch);
return $result;
}
$result = getPageContent(array(
'proxy' => '[ip or address]:[port]', // if needed
'user' => '[username]:[password]', // if needed
'url' => 'http://gdata.youtube.com/feeds/api/users/manitobachildhealth/favorites'
));
if (empty($result['error'])) {
// ok
// content of xml file
echo htmlentities($result['content']);
// file
$filename = 'video.xml';
// Open File
if (!$fp = fopen($filename, 'wt')) {
die("Unable to open '$filename'\n\n");
}
// write content to file
fwrite($fp, $result['content']);
// close file
fclose($fp);
} else {
// failed
echo '<pre>';
echo 'Error details;';
print_r ($result['error']);
echo '<hr />Other info:';
print_r ($result['info']);
echo '
';}