【发布时间】:2011-10-28 23:11:57
【问题描述】:
我在一个网站上有一个页面,它从 YouTube 中提取我最喜欢的供稿并将它们嵌入到网站中。
问题是它在 80% 的时间里都在工作,但在另外 20% 的时间里我在页面上遇到错误 - 代码中没有任何变化会导致这种情况,所以我想知道可能是什么原因造成的这个,或者如果有更好的方法来做我正在做的事情......
我得到的错误是 403 Forbidden 在检索 XML 提要时...这是它的样子(注意:行号不会完全匹配,因为我已经简化了下面的代码示例。
有问题的 XML 提要在这里:
https://gdata.youtube.com/feeds/api/users/umarchives/favorites
Warning: simplexml_load_file(https://gdata.youtube.com/feeds/api/users/umarchives/favorites) [function.simplexml-load-file]: failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden in /mnt/stor3-wc2-dfw1/web/content/videos.php on line 42
Warning: simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity "https://gdata.youtube.com/feeds/api/users/umarchives/favorites" in /mnt/stor3-wc2-dfw1/web/content/videos.php on line 42
Warning: Invalid argument supplied for foreach() in /mnt/stor3-wc2-dfw1/web/content/videos.php on line 47
这是我正在使用的代码:
<?php
// set feed URL
$YouTubeUsername = "umarchives";
$feedURL = "https://gdata.youtube.com/feeds/api/users/".$YouTubeUsername."/favorites";
// read feed into SimpleXML object
$sxml = simplexml_load_file($feedURL);
// iterate over entries in feed
foreach ($sxml->entry as $entry) {
// get nodes in media: namespace for media information
$media = $entry->children('http://search.yahoo.com/mrss/');
$attrs = $media->group->content->attributes();
$videoURL = $attrs['url'];
$videoURL = preg_replace('/\?.*/', '', $videoURL);
$videoURL = str_replace("/v/","/embed/",$videoURL);
$videoTitle = $media->group->title;
echo "<iframe class='youtube-player' width='300' height='225' src='$videoURL'></iframe>\n";
echo "<br>\n";
}
?>
【问题讨论】:
-
抱歉,我已将其添加到问题中,检索 XML 提要时出现 403 Forbidden 错误...
-
错误到底是什么样的?
-
好的,我已经添加了上面错误的确切文本,抱歉缺少细节...