我正在使用picasa api进行社区搜索,现在我也希望将缩略图放在搜索结果上。我该怎么做呢?我希望结果有缩略图,点击缩略图可以带你到网络相册中的图像。
<?php
require_once 'Zend/Loader.php';
Zend_Loader::loadClass('Zend_Gdata_Photos');
Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
Zend_Loader::loadClass('Zend_Gdata_AuthSub');
Zend_Loader::loadClass('Zend_Gdata_Query');
$search=$_REQUEST['id'];
$serviceName = Zend_Gdata_Photos::AUTH_SERVICE_NAME;
$user = "abc@gmail.com";
$pass = "password";
$client = Zend_Gdata_ClientLogin::getHttpClient($user, $pass, $serviceName);
$gp = new Zend_Gdata_Photos($client, "Google-DevelopersGuide-1.0");
// Community search queries aren't currently supported through a separate
// class in the PHP client library. However, we can use the generic
// Zend_Gdata_Query class as an alternative
// URL for a community search request
// Creates a Zend_Gdata_Query
$query = $gp->newQuery("https://picasaweb.google.com/data/feed/api/all");
// looking for photos in the response
$query->setParam("kind", "photo");
// full text search
$query->setQuery($search);
// maximum of 10 results
$query->setMaxResults("6");
// There isn't a specific class for representing a feed of community
// search results, but the Zend_Gdata_Photos_UserFeed understands
// photo entries, so we'll use that class
$userFeed = $gp->getUserFeed(null, $query);
foreach ($userFeed as $photoEntry)
{
echo $photoEntry->getTitle()->getText() . "</br > ";
// The 'alternate' link on a photo represents the link to
// the image page on Picasa Web Albums
$link=$photoEntry->getLink('alternate')->getHref();
echo "<img src='".$link."'>";
echo '<a href="'.$link.'">'.$photoEntry->getLink('alternate')->getHref().'</a> <br />';
echo "<br />\n";
}
?>
答案 0 :(得分:0)
算法:
例如:
// Define thumbnail properties (w = width, 200 = pixels).
$THUMBMAIL = "w200";
// Get the "source" URL for the image.
$imgSrc = $photoEntry->content->getSrc();
// Extract the component parts.
$url = parse_url( $imgSrc );
// Extract the path and inject the thumbnail size.
$url["path"] = dirname( $path ) . "/$THUMBNAIL/" . basename( $path );
// Reassemble the URL.
$thumbnail = build_url( $url );
你应该可以使用http_build_url,但我有命名冲突,所以写了这个:
function build_url( $url ) {
return $url["scheme"] . "://" . $url["host"] . "/" . $url["path"];
}
阅读this article了解详情。