【问题标题】:Show Google Images Using Curl, PHP and HTML - Wordpress使用 Curl、PHP 和 HTML 显示 Google 图片 - Wordpress
【发布时间】:2013-05-28 06:05:40
【问题描述】:

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

This query 就是一个例子。

我们希望它以 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; ?>

【问题讨论】:

  • ...还有...你试过什么?

标签: php html wordpress curl


【解决方案1】:

你的问题是这一行:

$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 个字符或更少的变量名。它们越有表现力,代码就越容易维护)在 @ 的范围内是不可访问的987654324@。您可以将其作为参数传递,也可以在函数内部使用global $tit; 将其提升到您的范围内。

第二个选项,虽然“它有效”——值得,但强烈推荐反对,因为它会迫使你污染全局命名空间来使用你的函数,并可能导致很多混乱以防您决定使用curl_multi(multi 是异步的)。

【讨论】:

  • 嗨,塞巴斯蒂安,问题是,这给了我以下错误:警告:在 /home/movies/public_html/wp-content/themes/moviestv/single.php 中为 foreach() 提供的参数无效在第 85 行警告:在第 91 行的 /home/movies/public_html/wp-content/themes/moviestv/single.php 中为 foreach() 提供的参数无效
  • @AlanCarr:那么 API 的返回不是有效的 json。就那么简单。你能用你的新代码编辑你的问题或 var_dump 返回 curl 吗?
  • 嗨,塞巴斯蒂安,感谢您为此提供的所有帮助。我已经更新了我在主要问题中使用的代码
猜你喜欢
  • 1970-01-01
  • 2011-11-14
  • 1970-01-01
  • 1970-01-01
  • 2021-07-07
  • 2013-01-29
  • 2012-06-10
  • 1970-01-01
  • 2017-07-01
相关资源
最近更新 更多