我想使用youtube api嵌入一个随机相关的视频,我找到了以下代码,但我需要将表单代码更改为关键字变量(我将使用产品标题作为变量)。此代码使用表单输入。如何更改代码以使用已定义的变量?
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Searching for videos by keyword</title>
<style>
img {
padding: 2px;
margin-bottom: 15px;
border: solid 1px silver;
}
td {
vertical-align: top;
}
td.line {
border-bottom: solid 1px black;
}
</style>
</head>
<body>
<?php
// if form not submitted
// display search box
if (!isset($_POST['submit'])) {
?>
<h1>Keyword search</h1>
<form method="post" action="<?php echo
htmlentities($_SERVER['PHP_SELF']); ?>">
Keywords: <br/>
<input type="text" name="q" />
<p/>
Items to display: <br/>
<select name="i">
<option value="10">10</option>
<option value="25">25</option>
<option value="50">50</option>
<option value="100">100</option>
</select>
<p/>
<input type="submit" name="submit" value="Search"/>
</form>
<?php
// if form submitted
} else {
// check for search keywords
// trim whitespace
// separate multiple keywords with /
if (!isset($_POST['q']) || empty($_POST['q'])) {
die ('ERROR: Please enter one or more search keywords');
} else {
$q = $_POST['q'];
$q = ereg_replace('[[:space:]]+', '/', trim($q));
}
// set max results
if (!isset($_POST['i']) || empty($_POST['i'])) {
$i = 25;
} else {
$i = $_POST['i'];
}
// generate feed URL
$feedURL = "http://gdata.youtube.com/feeds/api/videos/-/{$q}
?orderby=viewCount&max-results={$i}";
// read feed into SimpleXML object
$sxml = simplexml_load_file($feedURL);
// get summary counts from opensearch: namespace
$counts = $sxml->children('http://a9.com/-/spec/opensearchrss/1.0/');
$total = $counts->totalResults;
$startOffset = $counts->startIndex;
$endOffset = ($startOffset-1) + $counts->itemsPerPage;
?>
<h1>Search results</h1>
<?php echo $total; ?> items found. Showing items
<?php echo $startOffset; ?> to <?php echo $endOffset; ?>:
<p/>
<table>
<?php
// iterate over entries in resultset
// print each entry's details
foreach ($sxml->entry as $entry) {
// get nodes in media: namespace for media information
$media = $entry->children('http://search.yahoo.com/mrss/');
// get video player URL
$attrs = $media->group->player->attributes();
$watch = $attrs['url'];
// get video thumbnail
$attrs = $media->group->thumbnail[0]->attributes();
$thumbnail = $attrs['url'];
// get <yt:duration> node for video length
$yt = $media->children('http://gdata.youtube.com/schemas/2007');
$attrs = $yt->duration->attributes();
$length = $attrs['seconds'];
// get <gd:rating> node for video ratings
$gd = $entry->children('http://schemas.google.com/g/2005');
if ($gd->rating) {
$attrs = $gd->rating->attributes();
$rating = $attrs['average'];
} else {
$rating = 0;
}
// print record
echo "<tr><td colspan="2" class="line"></td>
</tr>n";
echo "<tr>n";
echo "<td><a href="{$watch}"><img src="$thumbnail"/></a></td>n";
echo "<td><a href="{$watch}">
{$media->group->title}</a><br/>n";
echo sprintf("%0.2f", $length/60) . " min. | {$rating} user
rating<br/>n";
echo $media->group->description . "</td>n";
echo "</tr>n";
}
}
?>
</table>
</body>
</html>
只需设置一个变量即可保存关键字,例如$array=['cat',mouse'dog']
。此外,您还可以设置一个变量,该变量将在数据库中获取数据/预设关键字,将其传递给每个循环,然后插入嵌入代码。
以下是嵌入Youtube视频的指南。
// mysql/data of keywords
$array=['cat',mouse'dog']
foreach( $array as $keyword){
//embed video
}
基于本教程,介绍如何通过关键字嵌入Youtube视频。
嵌入Youtube的推荐方法是使用IFrame。因为IFrame会根据客户的能力和可用的YouTube文件格式选择合适的播放器。
应用程序中的<iframe>
标记,其中src URL指定播放器将加载的内容以及您想要设置的任何其他播放器参数。
如果您自己创建<iframe>
元素(而不是使用IFrame Player API创建),则可以将播放器参数直接附加到URL的末尾。URL的格式如下:
http://www.youtube.com/embed/VIDEO_ID
下面的<iframe>
标签将加载一个640 x 480像素的播放器,该播放器将播放YouTube视频doLy jFSFNo。
由于URL将自动播放参数设置为1,一旦播放器加载,视频就会自动播放。
<iframe id="ytplayer" src="http://www.youtube.com/embed/doLy-jFSFNo?autoplay=1&origin=http://www.mr2t.com" frameborder="0" width="640" height="480"></iframe>
也试着检查一下,如何在PHP中嵌入YouTube视频?