ja cię ubiegnę bez ifa działa a mi się nie chce kombinować ;p - w curlu pousuwał jeszcze nagłówki przeglądarki a chciał wyniki "polskie"
tu się wyświetli poprawna tablica dla polskich linków - trzeba zamienić:
"http://www.google.com/search?num=100&q="
na:
"http://www.google.com/search?num=100&hl=pl&q="
i bez nagłówków z kolei żródło z curla znowu jest całkiem inne jak w mozilli - najpierw trzeba było sobie wyświetlić źródło z curla ;p - do poprawnej liczby wyników niech poprawi sobie pierwszą funkcję - wie gdzie bład no i niech spowrotem wrzuci ifa którego usunąłem gdyż nie chciało mi się tak sprawdzać warunków ;p - kod co działa tak jak miał ;p (no prawie ale czemu ja go mam dopieszczać ;p)
<?php
class google
{
public $word;
public $results = 1000;
public function get_results_num()
{
{
return false;
}
{
$this->word = substr($this->word, 0
, strpos($this->word, ".")); }
$url = "http://www.google.com/search?num=1&q=".trim(urlencode($this->word)); $curl = curl_init($url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_HTTPGET, true);
curl_setopt($curl, CURLOPT_POST, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$this->curl_result = curl_exec($curl);
curl_close($curl);
if (preg_match('/(of about <b>([0-9,]+)</b>)/', $this->curl_result, $out)) {
$res = $out[2];
}
return false;
}
public function get_results()
{
$url = "http://www.google.com/search?num=100&hl=pl&q=".trim(urlencode($this->word)); $curl = curl_init($url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_HTTPGET, true);
curl_setopt($curl, CURLOPT_POST, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$this->curl_result = curl_exec($curl);
curl_close($curl);
//<h3 class=r><a href="http://pl.wikipedia.org/wiki/A" class=l>
//tu było jeszcze sprawdzenie warunku czy to co szukamy jest na stronie - napisz jeszcze raz kożystając z poprawniejszego wyrażenie regularnego ;)
preg_match_all('/<h3 class=r><a href="([^"]+)" class=l>/',$this->curl_result,$matches); return $matches[1];
}
}
$google = new google;
$google->word='a'; //tutaj sobie daj tego geta co skasowałem ;p
echo $google->get_results_num();echo
'<pre>'; print_r($google->get_results());echo
'</pre>'; ?>
i pierwsza funkcja jest do poprawy gdyż poprawnie powinno być 17,780,000,000 - po prostu na zaś patrzeć w źródło z curla bo google rejonizuje ;p