显示谷歌图片使用Curl, PHP和HTML - Wordpress


Show Google Images Using Curl, PHP and HTML - Wordpress

我知道如何使用Google API在AJAX中返回图像结果,但我希望能够为特定查询返回图像,然后在我的页面上使用Curl和PHP将它们输出到HTML。

这个查询是一个示例。

我们希望在HTML中返回,这样我们就可以把它输出到页面上,例如:

<img src="<?php echo('googleimage'); ?>"/>

我们在Wordpress上使用这个,我们希望MYQUERY是用户所在页面/帖子的标题。请帮助!

我试过:

<?php
$posttit = get_the_title();
function get_url_contents($url) {
$crl = curl_init();
curl_setopt($crl, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT        5.1; .NET CLR 1.1.4322)');
curl_setopt($crl, CURLOPT_URL, $url);
curl_setopt($crl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($crl, CURLOPT_CONNECTTIMEOUT, 5);
$ret = curl_exec($crl);
curl_close($crl);
return $ret;
}
$json = get_url_contents('http://ajax.googleapis.com/ajax/services/search/images?v=1.0&q='.$posttit);
$data = json_decode($json);
foreach ($data->responseData->results as $result) {
$results[] = array('url' => $result->url, 'alt' => $result->title);
}
?>
<?php foreach($results as $image): ?>
<img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt']; ?>"/>
<?php endforeach; ?>

你的问题是这一行:

$json = get_url_contents('http://ajax.googleapis.com/ajax/services/search/images?  v=1.0&q=.$tit.');

应该是:

$json = get_url_contents('http://ajax.googleapis.com/ajax/services/search/images?v=1.0&q='.$tit);

但是,您的$tit变量(强烈建议您不要占用3个字符或更少的变量名)。它们的表达能力越强,代码维护起来就越容易)在function的范围内是不可访问的。你可以把它作为参数传递,也可以在函数内部使用global $tit;将它提升到你的作用域中。

第二个选项,虽然"它工作"值得,但强烈建议使用而不是,因为它迫使您污染全局命名空间来使用您的函数,并且如果您决定使用curl_multi (multi是异步的),可能会导致很多混乱。