如何使用 SimpleXML 和 PHP 检测是否在提要 URL 中找不到内容
How to detect if content wasn't found in the feed URL using SimpleXML and PHP
如何检测这个函数是否为空? (returns 没有)
function last_uploads() {
for($i = 0; $i < 20; ){
error_reporting(E_ALL);
$feedURL = 'http://gdata.youtube.com/feeds/api/users/youtube/uploads?max-results=5';
$sxml = simplexml_load_file($feedURL);
foreach ($sxml->entry as $entry) {
$media = $entry->children('media', true);
$url = (string)$media->group->player->attributes()->url;
$thumb = (string)$media->group->thumbnail->attributes()->url;
$watch = (string)$media->group->player->attributes()->url;
$title = (string)$media->group->title;
$height = esc_attr( ytio_embed_height_ret() );
$width = esc_attr( ytio_embed_width_ret() );
$query_string = parse_url(htmlspecialchars_decode($url), PHP_URL_QUERY);
parse_str($query_string, $data);
$dataurl = esc_attr( $data['v'] );
$index = strrpos($url, "&");
$url = substr($url, 0, $index);
$index = strrpos($url, "watch");
$url = substr($url, 0, $index) . "v/" . substr($url, $index + 8, strlen($url) - ($index + 8));
echo '<iframe id="ytplayer" type="text/html" width="' . $width . '" height="' . $height . '"
src="http://www.youtube.com/embed/' . $dataurl . '?rel=0&showinfo=1"
frameborder="0" showinfo allowfullscreen></iframe><br class="clear" />';
}
$i++;
break;
}
}
我试过了:
function last_uploads_ret() {
if(empty( last_uploads() )) {
echo 'Nothing found';
} else {
echo last_uploads();
}
但是 returns 视频和 Nothing found
如果频道有上传。
例如,此供稿 URL 没有上传:http://gdata.youtube.com/feeds/api/users/mullenweg/uploads?prettyprint=true
只需检查 <entry>
标签是否存在:
if (isset($sxml->entry)) {
// has videos
}
如何检测这个函数是否为空? (returns 没有)
function last_uploads() {
for($i = 0; $i < 20; ){
error_reporting(E_ALL);
$feedURL = 'http://gdata.youtube.com/feeds/api/users/youtube/uploads?max-results=5';
$sxml = simplexml_load_file($feedURL);
foreach ($sxml->entry as $entry) {
$media = $entry->children('media', true);
$url = (string)$media->group->player->attributes()->url;
$thumb = (string)$media->group->thumbnail->attributes()->url;
$watch = (string)$media->group->player->attributes()->url;
$title = (string)$media->group->title;
$height = esc_attr( ytio_embed_height_ret() );
$width = esc_attr( ytio_embed_width_ret() );
$query_string = parse_url(htmlspecialchars_decode($url), PHP_URL_QUERY);
parse_str($query_string, $data);
$dataurl = esc_attr( $data['v'] );
$index = strrpos($url, "&");
$url = substr($url, 0, $index);
$index = strrpos($url, "watch");
$url = substr($url, 0, $index) . "v/" . substr($url, $index + 8, strlen($url) - ($index + 8));
echo '<iframe id="ytplayer" type="text/html" width="' . $width . '" height="' . $height . '"
src="http://www.youtube.com/embed/' . $dataurl . '?rel=0&showinfo=1"
frameborder="0" showinfo allowfullscreen></iframe><br class="clear" />';
}
$i++;
break;
}
}
我试过了:
function last_uploads_ret() {
if(empty( last_uploads() )) {
echo 'Nothing found';
} else {
echo last_uploads();
}
但是 returns 视频和 Nothing found
如果频道有上传。
例如,此供稿 URL 没有上传:http://gdata.youtube.com/feeds/api/users/mullenweg/uploads?prettyprint=true
只需检查 <entry>
标签是否存在:
if (isset($sxml->entry)) {
// has videos
}