我正在尝试制作一个重定向到随机YouTube视频的脚本。我如何获取vidKey,将每个$ vidkey放入一个数组然后随机化该数组,以便重定向到另一个YouTube视频?
$sxml = simplexml_load_file("http://gdata.youtube.com/feeds/api/users/TechTubeCentral/uploads?max-results=25");
foreach ($sxml->entry as $entry) {
$vidKey = substr(strrchr($entry->id,'/'),1);
}
答案 0 :(得分:3)
将每个键放入一个数组中,然后在完成后shuffle:
$sxml = simplexml_load_file("http://gdata.youtube.com/feeds/api/users/TechTubeCentral/uploads?max-results=25");
$vidKeys = array();
foreach ($sxml->entry as $entry)
$vidKeys[] = substr(strrchr($entry->id,'/'),1);
shuffle($vidKeys);
然后从中选择一个条目,例如$vidKeys[0]
。
您也可以将结果放在数据库中ORDER BY RAND()
。在下一个请求中,您将从数据库中获取视频密钥,从列表中选择并删除条目(请参阅array_shift
)并将列表放回数据库中。你这样做,直到没有更多的视频键,然后再次激活谷歌查询等等...这样可以避免你的脚本在每次加载页面时查询谷歌,并减少被重定向到同一视频的机会
答案 1 :(得分:0)
$i=0; $random_video = mt_rand(1, 25);
$sxml = simplexml_load_file("http://gdata.youtube.com/feeds/api/users/TechTubeCentral/uploads?max-results=25");
foreach ($sxml->entry as $entry) {
if($random_video==$i++){
$vidKey = substr(strrchr($entry->id,'/'),1); break;
}
}
答案 2 :(得分:0)
PHP有一个内置函数,用于从数组array_rand()
$sxml = simplexml_load_file("http://gdata.youtube.com/feeds/api/users/TechTubeCentral/uploads?max-results=25");
$vidKeys = array();
foreach ($sxml->entry as $entry)
$vidKeys[] = substr(strrchr($entry->id,'/'),1);
$randomVidKey = $vidKeys[array_rand($vidKeys)];