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;、関数内で使用してスコープ内に引き上げることもできます。

2 番目のオプションは、「機能する」価値はありますが、関数を使用するためにグローバル名前空間を汚染することを余儀なくされ、使用することにした場合に多くの混乱を招く可能性があるため、に対してcurl_multi非常に強く推奨されます(multi は非同期)。

于 2013-06-01T17:20:50.430 に答える