1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
| function get_result_by_google($word,$max=10,$start=0)
{
$res = result_google_api($word);
$data = str_replace(array("\r","\n"),"",$res['data']);
$data = str_replace(array("<",">","&"),array("<",">","&"),$data);
$data = str_replace("<br> ","",$data);
$ret = array();
if (preg_match_all("/<item[^>]*>(.+?)<\/item>/i",$data,$arg))
{
$i = 0;
foreach($arg[1] as $item)
{
if (preg_match("/<title[^>]*>(.*)<\/title>/",$item,$match)) $ret[$i]['title'] = $match[1];
if (preg_match("/<snippet[^>]*>(.*)<\/snippet>/",$item,$match)) $ret[$i]['snippet'] = $match[1];
if (preg_match("/<URL[^>]*>(.*)<\/URL>/",$item,$match)) $ret[$i]['url'] = $match[1];
$i++;
}
}
return $ret;
}
function result_google_api($word,$max=10,$start=0)
{
$word = mb_convert_encoding($word, "UTF-8", "EUC-JP");
$license_key = ""; //ライセンスキーを設定
$data = "<?xml version='1.0' encoding='UTF-8'?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\"
xmlns:xsi=\"http://www.w3.org/1999/XMLSchema-instance\"
xmlns:xsd=\"http://www.w3.org/1999/XMLSchema\">
<SOAP-ENV:Body>
<ns1:doGoogleSearch xmlns:ns1=\"urn:GoogleSearch\"
SOAP-ENV:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\">
<key xsi:type=\"xsd:string\">$license_key</key>
<q xsi:type=\"xsd:string\">$word</q>
<start xsi:type=\"xsd:int\">$start</start>
<maxResults xsi:type=\"xsd:int\">$max</maxResults>
<filter xsi:type=\"xsd:boolean\">true</filter>
<restrict xsi:type=\"xsd:string\"></restrict>
<safeSearch xsi:type=\"xsd:boolean\">false</safeSearch>
<lr xsi:type=\"xsd:string\">lang_ja</lr>
<ie xsi:type=\"xsd:string\">utf8</ie>
<oe xsi:type=\"xsd:string\">utf8</oe>
</ns1:doGoogleSearch>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>";
$query = 'POST '."/search/beta2"." HTTP/1.0\r\n";
$query .= "Host: "."api.google.com"."\r\n";
$query .= "Content-Type: text/xml; charset=utf-8\r\n";
$query .= 'Content-Length: '.strlen($data)."\r\n";
$query .= "\r\n";
$query .= $data;
$fp = fsockopen("api.google.com",80,$errno,$errstr,30);
if (!$fp)
{
return array(
'query' => $query, // Query String
'rc' => $errno, // エラー番号
'header' => '', // Header
'data' => $errstr // エラーメッセージ
);
}
fputs($fp, $query);
$response = '';
while (!feof($fp))
{
$response .= fgets($fp,4096);
}
fclose($fp);
$response = mb_convert_encoding($response, "EUC-JP", "UTF-8");
$resp = explode("\r\n\r\n",$response,2);
$rccd = explode(' ',$resp[0],3); // array('HTTP/1.1','200','OK\r\n...')
return array(
'query' => $query, // Query String
'rc' => (integer)$rccd[1], // Response Code
'header' => $resp[0], // Header
'data' => $resp[1] // Data
);
}
|