【发布时间】:2011-05-13 21:43:28
【问题描述】:
我正在使用 google images api 来检索有关图像的一些信息。唯一的问题是对start 参数的理解。这是我的主要周期:
// $num - necessary number of images to find
function doGoogle($query, $num)
{
// Search images until we have need number
$i = $k = $n = 0;
while(count($resultStorage) < $num)
{
$base_url = 'http://ajax.googleapis.com/ajax/services/search/images?v=1.0';
$url = $base_url;
if ($i == 0)
$url .= '&imgsz=large&q='.urlencode($query).'&start=00';
else
$url .= '&imgsz=large&q='.urlencode($query).'&start='.$k.$n;
// Request the page from google's api
$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_URL, $url);
$json = curl_exec($curl);
curl_close($curl);
$data = json_decode($json);
echo '<div style="clear: both"></div>Page: <b>' . $i . '</b><br />Url: <b>' . $url . '</b><br />';
// Cycle through the list of result images
foreach($data->responseData->results as $v)
{
// If we already have neccessary number of images
if (count($resultStorage) == $num) break;
// Show it up
echo "<div style='float: left'><a href='{$v->unescapedUrl}'><img src='{$v->tbUrl}' /></a></div>";
}
$i++;
$k++;
if ($k == 9) { $k = 0; $n++; }
}
};
如何使用n 和k 进行操作?因为有时它会返回相同的图片(循环)。
您可以在以下页面找到我的示例代码:http://95.134.128.173/image.uploader.php(只需单击“搜索”)。
【问题讨论】: