Potrzebowałem napisać skrypt ktory mi sprawdzi pozycje podanego adresu na podane słowo kluczowe w google.
Napisałem coś takiego:
<?php function CheckGoogle($host,$query) { $soapclient = new soapclient(\"http://api.google.com/GoogleSearch.wsdl\",\"wsdl\"); $ktory = 0; for ($i=0;$i<5;$i++) { //Pierwsze 50 wyników $start = $i * 10; 'q' => $query, 'start' => $start, 'maxResults' => 10, 'filter' => true, 'restrict' => '', 'safeSearch' => false, 'lr' => '', 'ie' => 'latin', 'oe' => 'latin' ); //$params[q] = plCharset($params[query], WIN1250_TO_UTF8); $result = $soapclient->call(\"doGoogleSearch\", $params); /* foreach($result['resultElements'] as $v) { //echo $v['URL']; if (strpos($v['URL'],$host)) { $break = 1; break; } $ktory++; } */ if ($break) break; } return $ktory; } $co = \"www.adres.pl\"; $gdzie = CheckGoogle ($co,\"slowo kluczowe\"); ?>
Nie wiem jednak dlaczego - ale skrypt ten jest strasznie wolny - wykonuje się około 20 sekund - co jest stanowczo za długo.
Nie jest to wina pętli foreach - zakomentarzowana skróciła czas pracy o nieodczywalne minimum.
Gdzie zrobiłem błąd?.