我试图得到我的频道视频,我几乎已经存档,但是YouTube检索每页50个结果,我的频道有150个视频,这将是更整洁的分页结果。有可能做到这一点与下面的代码?如果有,请告诉我怎么做
我是一个PHP程序员,但完全新的使用它和发送http请求到你管,包括分页的东西。
这是目前为止我写的
<?php
error_reporting(E_ALL);
$feedURL = 'http://gdata.youtube.com/feeds/api/users/gamertv273/uploads?start-index=1&max-results=10';
$sxml = simplexml_load_file($feedURL);
$i=0;
foreach ($sxml->entry as $entry) {
$media = $entry->children('media', true);
$watch = (string)$media->group->player->attributes()->url;
$thumbnail = (string)$media->group->thumbnail[0]->attributes()->url;
?>
<link rel='previous' type='application/atom+xml'
href='http://gdata.youtube.com/feeds/api/users/gamertv273/uploads?start-index=1&max-results=10'/>
<link rel='next' type='application/atom+xml'
href='http://gdata.youtube.com/feeds/api/users/gamertv273/uploads?start-index=2&max-results=10'/>
<div class="videoitem">
<div class="videothumb"><a href="<?php echo $watch; ?>" class="watchvideo"><img src="<?php echo $thumbnail;?>"
alt="<?php echo $media->group->title; ?>" /></a></div>
<div class="videotitle">
<h3><a href="<?php echo $watch; ?>" class="watchvideo"><?php echo $media->group->title; ?></a></h3>
</div>
</div>
<?php $i++; if($i==3) { echo '<div class="clear small_v_margin"></div>'; $i=0; } } ?>
http://gdata.youtube.com/feeds/api/users/gamertv273/uploads?start-index=100&max-results=50
start-index为起始视频索引。
max-results是返回的条目数(最大允许为50)。
步骤1首先,我建议您解析页码到您自己的页面,然后您的代码相应地查询YTube。例如
www.yourwebsite.com/your-page.php ? = 1页
在你的代码中:
<?php
$results_per_page = 20;
$start_index = $_GET['page'] - 1 * ($results_per_page + 1);
$feedURL = 'http://gdata.youtube.com/feeds/api/users/gamertv273/uploads?start-index=' . $start_index . '&max-results=' . $results_per_page;
//[rest of the code]
?>
如果你的页面是1,返回0-20,如果你的页面是2,返回20-40,等等。
步骤2然后,你需要输入页码。如果你有126个视频,那么应该有7个页面,每个页面有20个结果。要知道总共有多少个视频,请参考下面的API:
http://gdata.youtube.com/feeds/api/users/gamertv273/uploads?v=2&alt=jsonc&max-results=0
您现在可以使用json_decode()解析json响应,获取totalItems并除以$results_per_page以获得可用页面的数量。然后,很容易打印标签的每页,与上/下一个按钮。
<a href="www.yourwebsite.com/your-page.php?page=1">previous page</a>
<a href="www.yourwebsite.com/your-page.php?page=3">next page</a>
<a href="www.yourwebsite.com/your-page.php?page=1">page 1</a>
<a href="www.yourwebsite.com/your-page.php?page=2">page 2</a>
<a href="www.yourwebsite.com/your-page.php?page=3">page 3</a>
<a href="www.yourwebsite.com/your-page.php?page=4">page 4</a>