Wykorzystałem gotowy skrypt znaleziony gdzieś na internecie do sprawdzania pozycji strony na zadaną frazę.
Zwraca ze fraza strony flash znajduje się na 6 pozycji, co nie jest prawdą, bo prawidłowa pozycja to 2.
Zatem błąd tkwi w wynikach zwróconych przez curla, wie ktoś może dlaczego ?
Poniżej trochę kodu:
$adres_strony = 'http://'.$_GET['strona'].''; $fraza = $_GET['fraza']; //$wyszukiwarka = $row_slowa_kluczowe['searcher']; $pos = 0; $done = false; $found = false; $page_limit = 50; //wykonajmy skrypt sprawdzanai pozycji for ($page = 0; $page < $page_limit; $page += 10) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://www.google.pl/search?hl=pl&source=hp&q='.urlencode($fraza).'&start='.$page); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_REFERER, 'www.google.pl'); "Host: www.google.pl", "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; pl-PL; rv:1.8.1.24pre) Gecko/20100228 K-Meleon/1.5.4", "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5", "Accept-Language: pl,en-us;q=0.7,en;q=0.3", "Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7", "Keep-Alive: 300", "Connection: keep-alive", "Referer: www.google.pl" )); $response = curl_exec($ch); curl_close($ch); foreach ($out[1] as $serp) { { $pos++; if ($serp == $url) { $done = true; $found = true; break; } else { $found = false; if ($page == ($page_limit - 10)) { break; } } } } if ($done) { break; } // losowy czas pomiedzy kolejnymi zapytaniami } if ($found) { echo '<br />'.$adres_strony.' - '. $fraza. ' - <b style="color:#00CC00">pozycja - '.$pos.'</b><br />'; } else if (!$found) { echo '<br />'.$adres_strony.' - '. $fraza. ' - <b style="color:#FF0000">pozycja powyżej 50</b><br />'; }