2

我知道我们如何使用 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; ?>
4

1 回答 1

0

你的问题是这一行:

$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 是异步)。

于 2013-06-01T17:20:50.430 回答