Ik wil graag de Google zoekfunctie in een bestaand script integreren. Aangezien dit meer een ombouw is lijkt het me beter om opnieuw te beginnen (denk ik).
Toch rest mij de vraag; Is er een mogelijkheid de API mee te nemen in dit script ? Volgens mij moet het scriptwel dus danig aanpasbaar zijn dat ik een eind moet komen door de "request_url" aan te passen.
Ik heb al wat vergelijkingen gedaan met phpgoogle.com om te kijken of deze ook gebruik maakt van een "mee-integratie" van de google API, dit lijkt namelijk wel het geval. De API zit er niet voor 100% in bij phpGoogle maar wordt aangeroepen.
Ik voeg het script even bij zodat iemand zijn mening kan geven over; Of opnieuw beginnen, of aanpassen.
Toch rest mij de vraag; Is er een mogelijkheid de API mee te nemen in dit script ? Volgens mij moet het scriptwel dus danig aanpasbaar zijn dat ik een eind moet komen door de "request_url" aan te passen.
Ik heb al wat vergelijkingen gedaan met phpgoogle.com om te kijken of deze ook gebruik maakt van een "mee-integratie" van de google API, dit lijkt namelijk wel het geval. De API zit er niet voor 100% in bij phpGoogle maar wordt aangeroepen.
Ik voeg het script even bij zodat iemand zijn mening kan geven over; Of opnieuw beginnen, of aanpassen.
code:
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
| <?php
class Google {
function Google() {
$this->profile = array(
'site_name' => 'Google',
'site_url' => 'http://www.google.com',
'request_url' =>
'http://www.google.com/search?as_q=$e_qry_str&num=50&hl=en&ie=UTF-8&bt...,
'add_url' => 'http://www.google.com/addurl.html',
);
}
function parse_results(&$output) {
#echo $output; # debug
$results = array();
if(preg_match_all('{<p class=g><a href=([^> ]+)
[^>]*>(.+?)</a><br>(.*?)<br><font}is',$output,$matches,PREG_SET_ORDER))
{
$last_match = '';
foreach($matches as $r) {
$result = array(
'real_url' => html_decode($r[1]),
'follow_url' => html_decode($r[1]),
'title' => html_decode($r[2]),
'description' => html_decode($r[3]),
);
#$result['real_url'] =
preg_replace("{^(.+)(http://[^&]+)(&.*|$)}","\$2",$result['real_url']);
array_push($results,$result);
$last_match = &$r[0];
}
if($last_match) {
$offset =
strpos($output,$last_match)+strlen($last_match);
$output = substr($output,$offset);
}
}
#var_export($results); # debug
return $results;
}
function parse_next_qry($env) {
$next_qry = '';
$full_output = $env['full_output'];
#echo $full_output;
$depth = $env['depth'];
$e_qry_str = $env['e_qry_str'];
$from = ($depth-1)*10+1;
if(preg_match('{href=([^>]+)><img[^>]*><br><span[^>]*>Next<}is',$full_output,$matches))
{
$next_qry = $matches[1] = html_decode($matches[1]);
$next_qry = "http://www.google.com$matches[1]";
}
#var_export($next_qry);
return $next_qry;
}
function adjust_initial_qry($qry) { # PREPARE THE REQUEST URL
$url = $this->profile['request_url'];
# adjust language:
$lang = $qry['language'];
$lang_table = array(
'szh' => 'zh-CN',
'tzh' => 'zh-TW',
'he' => 'iw'
);
if(@$lang_table[$lang]){
$lang = $lang_table[$lang];
}
if(!$lang) {
$lang = 'en';
}
# adjust geo-region:
$geo = $qry['geo'];
$e_qry_str = $qry['e_qry_str'];
if(@$qry['e_full_qry_str']) {
$e_qry_str = $qry['e_full_qry_str'];
}
$url = eval("return \"$url\";"); # evaluate the url
return $url;
}
}
?> |