google zoekscriptje :P
en nu mijn probleem.. ik ben zegmaar OOP voor php4 aan het leren :P en heb dus een klasse geschreven voor het weergeven van de eerste pagina met google..
nu heb ik dit:
Code (php)
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
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
<?php
class Google
{
var $site = "http://www.google.nl/search?q=";
var $regex = "/\<div[ ]*class=g[^>]*\>.*?\<\/div\>/is";
var $search;
var $resultarr;
var $resultaat = "Geen resultaten!";
var $error;
function search($arr)
{
foreach($arr as $a)
{
$this->search .= $a;
$this->search .= '+';
}
$this->site .= substr($this->search, 0, -1);
$this->site .= "&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:nl:official&client=firefox-a";
}
function getResult()
{
if(!preg_match_all($this->regex, $this->site, $this->resultarr))
{
$this->error = "Geen resultaten!";
}
$this->resultaat = "<b>Resultaten</b><br />";
foreach($this->resultarr as $r)
{
$this->resultaat .= $r;
}
}
}
?>
<b>Google search!</b><br />
<form action="<?=$_SERVER['PHP_SELF']?>" method="get">
<label for="search">Zoek</label> <input type="text" name="search" id="search" /><br />
<input type="submit" name="zoek" value="Zoeken!" />
</form>
<?php
if(isset($_GET['search']))
{
$arr = explode(" ", $_GET['search']);
$search = new Google();
$search->search($arr);
$search->getResult();
if(!empty($search->error))
{
echo "<b>Fout</b> " . $search->error . "<br />";
}
if(is_array($search->resultaat))
{
foreach($search->resultaat as $r)
{
echo $r . "<br />\r\n";
}
}
else
{
echo $search->resultaat;
}
echo "<br />" . $search->site;
}
?>
class Google
{
var $site = "http://www.google.nl/search?q=";
var $regex = "/\<div[ ]*class=g[^>]*\>.*?\<\/div\>/is";
var $search;
var $resultarr;
var $resultaat = "Geen resultaten!";
var $error;
function search($arr)
{
foreach($arr as $a)
{
$this->search .= $a;
$this->search .= '+';
}
$this->site .= substr($this->search, 0, -1);
$this->site .= "&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:nl:official&client=firefox-a";
}
function getResult()
{
if(!preg_match_all($this->regex, $this->site, $this->resultarr))
{
$this->error = "Geen resultaten!";
}
$this->resultaat = "<b>Resultaten</b><br />";
foreach($this->resultarr as $r)
{
$this->resultaat .= $r;
}
}
}
?>
<b>Google search!</b><br />
<form action="<?=$_SERVER['PHP_SELF']?>" method="get">
<label for="search">Zoek</label> <input type="text" name="search" id="search" /><br />
<input type="submit" name="zoek" value="Zoeken!" />
</form>
<?php
if(isset($_GET['search']))
{
$arr = explode(" ", $_GET['search']);
$search = new Google();
$search->search($arr);
$search->getResult();
if(!empty($search->error))
{
echo "<b>Fout</b> " . $search->error . "<br />";
}
if(is_array($search->resultaat))
{
foreach($search->resultaat as $r)
{
echo $r . "<br />\r\n";
}
}
else
{
echo $search->resultaat;
}
echo "<br />" . $search->site;
}
?>
maar het enige wat ik als resultaat krijg is dit:
Quote:
Resultaten
Array
http://www.google.nl/search?q=zoek+woord&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:nl:official&client=firefox-a
Array
http://www.google.nl/search?q=zoek+woord&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:nl:official&client=firefox-a
(die url is alleen om te kijken of dat wel goed gaat :P)
weet iemand wat er dus fout gaat??
gr. leroy
Edit:
titel aangepast :P
Gewijzigd op 01/01/1970 01:00:00 door Leroy Boerefijn
Kun je het 'doel' wat je wilt bereiken niet beter anders benaderen? je kan bijvoorbeeld communiceren met servers via de Curl() functie's en mits je deze niet hebt zijn de mogelijkheden te verleggen naar fsockopen() en Parse_Url().
Maar als het goed is zal google zelf je aanraden om een eigen zoek venster van hun te gebruiken gezien ik dacht dat het officieel zo was dat je niet mag functioneren als een verlengstuk van google.
Laat ik het zo zeggen, als deze functie van je hevig wordt gebruikt en ik dan gelijk hebt wat betreft de regelement van google (mits verandert) dan kan je site nog wel eens geblokkeerd worden.
en ik vond het gewoon raar dat mijn ding niet werkte :P
maar ik ga het nooit echt als zoekfunctie gebruiken.. en ik bedenk me net dat ik in de url zat te zoeken :P
dus ik heb een file_get_contents toegevoegd.. maar werkt nog niet:
Code (php)
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
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
<?php
//functies
function search($arr)
{
foreach($arr as $a)
{
$this->search .= $a;
$this->search .= '+';
}
$this->site .= substr($this->search, 0, -1);
$this->site .= "&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:nl:official&client=firefox-a";
$this->inhoud = file_get_contents($this->site);
}
function getResult()
{
if(!preg_match_all($this->regex, $this->inhoud, $this->resultarr))
{
$this->error = "Geen resultaten!";
}
$this->resultaat = "<b>Resultaten</b><br />";
foreach($this->resultarr as $r)
{
$this->resultaat .= $r;
}
}
?>
//functies
function search($arr)
{
foreach($arr as $a)
{
$this->search .= $a;
$this->search .= '+';
}
$this->site .= substr($this->search, 0, -1);
$this->site .= "&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:nl:official&client=firefox-a";
$this->inhoud = file_get_contents($this->site);
}
function getResult()
{
if(!preg_match_all($this->regex, $this->inhoud, $this->resultarr))
{
$this->error = "Geen resultaten!";
}
$this->resultaat = "<b>Resultaten</b><br />";
foreach($this->resultarr as $r)
{
$this->resultaat .= $r;
}
}
?>
gr. leroy
edit de resultaten staan bij google tussen <div class=g> en </div> ..
Gewijzigd op 01/01/1970 01:00:00 door Leroy Boerefijn
:l
Of wil je een "eigen" zoekemachine maken die alle zoekmachine's in 1x doet?