FC2ブログ

<?php
// 検索ワード
$Get_Keyword = ereg_replace("[  ]+", " ", trim($_GET['q']));
$Get_Keyword_enc = urlencode($Get_Keyword);
$Get_Keyword_enc_utf = urlencode(mb_convert_encoding($Get_Keyword, "UTF-8", "EUC-JP"));

// 共通
$Google_web = "http://ajax.googleapis.com/ajax/services/search/web";
$q = "?q=".$Get_Keyword_enc_utf;
$v = "&v=1.0";
$rsz = "&rsz=large";
$hl = "&hl=ja";
$key = "";
$start = "&start=0";

// ウェブ検索固有の引数
$cx = "";
$cref = "";
$lr = "&lr=lang_ja";
$safe = "&safe=moderate";

// JSON
$Google_web = $Google_web.$q.$v.$hl.$rsz.$start.$lr.$safe;
$jsondata = file_get_contents($Google_web);
$jsondec = json_decode($jsondata);

$G_responseDetails = $jsondec->responseDetails;
$G_responseStatus = $jsondec->responseStatus;
$G_estimatedResultCount = $jsondec->responseData->cursor->estimatedResultCount;
$G_currentPageIndex = $jsondec->responseData->cursor->currentPageIndex;
$G_moreResultsUrl = $jsondec->responseData->cursor->moreResultsUrl;

print $G_responseDetails."<br />";
print $G_responseStatus."<br />";
print $G_estimatedResultCount."<br />";
print $G_currentPageIndex."<br />";
print $G_moreResultsUrl."<br />";

if(is_array($jsondec->responseData->results)){
foreach($jsondec->responseData->results as $value){
$G_unescapedUrl = $value->unescapedUrl;
$G_url = $value->url;
$G_visibleUrl = $value->visibleUrl;
$G_cacheUrl = $value->cacheUrl;
$G_title = mb_convert_encoding($value->title, "EUC-JP", "UTF-8");
$G_titleNoFormatting = mb_convert_encoding($value->titleNoFormatting, "EUC-JP", "UTF-8");
$G_content = mb_convert_encoding($value->content, "EUC-JP", "UTF-8");

print $G_unescapedUrl."<br />";
print $G_url."<br />";
print $G_visibleUrl."<br />";
print $G_cacheUrl."<br />";
print $G_title."<br />";
print $G_titleNoFormatting."<br />";
print $G_content."<br />";

}
}
?>

参考URL
クラス リファレンス - Google AJAX Search API - Google Code Flash やその他 JavaScript を使用しない環境

q 検索ワード
v プロトコルのバージョン番号
rsz 検索結果の数 smallは4件 largeは8件
key アプリケーションのキーを指定
hl リクエストを行うアプリケーションのホスト言語を指定
start 検索結果の開始インデックス 最初 0
callback 標準レスポンス フォーマットを変更
context callback と関連のある標準の応答形式が置き換えられます
cx カスタム検索エンジンの一意の ID を指定
cref リンク済みカスタム検索エンジン指定の URL を指定
safe 検索安全レベル safe=active 強 safe=moderate 中 safe=off 無効
lr 特定の言語で書かれたドキュメントに制限

responseStatus 成功した場合は 200 の値 失敗した場合は 200 以外の http エラー ステータス コード
responseDetails 診断文字列
estimatedResultCount 検索結果の総数
currentPageIndex インデックス数
moreResultsUrl 検索の続き

unescapedUrl HTMLエスケープされていない
url HTMLエスケープされている(エンコード済み)
visibleUrl ドメイン
cacheUrl キャッシュのURL
title タグで強調したタイトル
titleNoFormatting タイトル
content コンテンツ

一言
XMLやJSONの扱い方が判っていないので毎回総当りしてるよ
オンライン コンパイラ/インタプリタ
テクニカル分析
プロフィール

Author:雨宮
Firefoxを使用しているので気づかなかったけど、IE6でソースコードを上手くコピーできない

5/3
携帯用ならIE6でもソースコードをコピーできる
携帯用

検索フォーム


あわせて読みたいブログパーツ
一寸先は闇 RSS