CODE
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="Description" content="Sprytna aplikacja służąca do sprawdzania pozycji w Google.
Pokazuje dokładnie na której pozycji znajduje się witryna.
Idealne narzędzie dla pozycjonerów i zainteresowanych SEO." />
<meta name="Keywords" content="sprawdzanie pozycji w Google, SERP, pozycja w Google" />
<title>Sprawdź pozycję swojej witryny - strona główna</title>
</head>
<body>
<center>
<h1>Wpisz zapytanie:</h1>
<h2>Weź pod uwagę, że wpisanie bądź niewpisywanie www na początku ma znaczenie<br/>
- to dla Google zupełnie inna strona.</h2>
<h3>(Tak jakbyś wpisywał je w google)</h3>
<form action="wyniki.php" method=post>
<input type="text" size="80" name="zapytanie" />
<br />
<h3>Twoja strona:</h3>
<p><input type="text" size="80" name="uzytkownika" value="http://"/></p>
<input type="submit" value="Szukaj" />
</form>
</center>
</body>
</html>
CODE
<?php
$zapytanie = $_POST['zapytanie'];
$uzytkownika = $_POST['uzytkownika'];
$http_referer = $_SERVER['HTTP_REFERER'];
?>
<?php
echo "<pre>";
try {
require_once("Snoopy.class.php");
if(!require_once("Snoopy.class.php")) {
throw new Exception("Wystąpił błąd przy ładowaniu biblioteki.<br>
Jeśli chcesz pomóc administracji tej strony, powiadom webmastera.", 1);
}
}
catch (Exception $biblioteka) {
echo "<center><h1><strong>Błąd!</strong></h1>
<br />".$biblioteka->getMessage()."</center>";
}
if($zapytanie == "") { //nie można użyć isset
echo "<center><h1><strong>Musisz określić słowa,
które wpisałbyś do wyszukiwarki.</h1></strong>
<a href=".$http_referer."><button>Powrót do poprzedniej
</button></a></center>";
exit;
}
global $uzytkownika;
global $zapytanie;
$zapytanie = trim($zapytanie);
$uzytkownika = trim($uzytkownika);
while(strpos($zapytanie, " ") !== false) {
$znak = strpos($zapytanie, " ");
$zapytanie[$znak] = "+";
settype($zapytanie, "string");
}
//echo $zapytanie;
if($uzytkownika !== null) {
if(strpos($uzytkownika, "http://") === 0) {
$uzytkownika = substr($uzytkownika, 7);
}
// if(strpos($uzytkownika, "www") === 0) { //opcjonalnie, potem dodać czy z www czy nie
// $uzytkownika = substr($uzytkownika, 4);
// }
}
var_dump($uzytkownika);
$ktorastrona = 0;
function alternatywasnoopy(&$url) {
global $linki;
$tresci = file_get_contents($url);
while(strpos($tresci, 'href="http://') !== false) {
$poczatek = strpos($tresci, 'href="http://');
$dalszatresc = substr($tresci, $poczatek+strlen('href="'));
$koniec = strpos($dalszatresc, '"');
$linki[] = substr($dalszatresc, 0, $koniec);
$tresci = substr($dalszatresc, $koniec);
}
return $linki;
}
function wytnij(&$links2, $argument) {
foreach($links2 as $klucz => $lacze) {
// if ($klucz !== count($links2) - 1)
$tablicowystring .= $lacze.".PODZIAL.";
// else
// $tablicowystring .= $lacze;
}
if(strpos($tablicowystring, $argument) !== false) {
$poczatek = strpos($tablicowystring, $argument);
$koniec = strrpos($tablicowystring, $argument);
$koniec += strpos(substr($tablicowystring, $koniec), '.PODZIAL.') + strlen('.PODZIAL.');
$tablicowystring2 = substr($tablicowystring, 0, $poczatek);
$tablicowystring3 .= substr($tablicowystring, $koniec);
$tablicowystring = $tablicowystring2.$tablicowystring3;
}
$links2 = explode('.PODZIAL.', $tablicowystring);
// if(strpos($links2[count($links2)-1], "http://") !== 0) {
// array_pop($links2);
// }
// echo "<br />".count($links2);
foreach($links2 as $klucze =>$pozycje) {
if($pozycje == "") {
array_pop($links2);
}
}
return $links2;
}
function tylkowartosciowe($linki) {
$c = 0;
global $links2;
for($i=12; $i<count($linki)-9; $i++) { //12 śmieci googla
if(strpos($linki[$i], 'http://www.google.pl/imgres?imgurl') === false//koniecznie false, bo może zwrócić zero!
&& strpos($linki[$i], 'http://www.google.pl/search') === false
&& strpos($linki[$i], 'http://www.google.pl/url?q=') === false
&& strpos($linki[$i], 'http://www.google.pl/swr?q=accountants') === false
//&& strpos($linki[$i], 'http://video.google.pl/videosearch?hl') === false
&& strpos($linki[$i], 'http://images.google.pl/images?') === false
&& strpos($linki[$i], 'http://www.google.pl/language_tools?') === false
&& strpos($linki[$i], 'http://www.google.pl/search/https://adwords.google.com/') === false //ewentualny śmieć
&& strpos($linki[$i], "/aclk?sa") === false //google adsense
&& strpos($linki[$i],'http://translate.google.pl/translate?hl=') === false //?h1= konieczne! coś w stylu tłumacz stronę
&& !ereg('^[0-9]{2,}[0-9\.]', (substr($linki[$i], strlen('http://'), strpos($linki[$i], '/search?')-strlen('http://')))))
{
$links2[$c]=$linki[$i];
$c += 1;
}
}
$links2 = wytnij($links2, 'http://maps.google.pl/maps?');
$links2 = wytnij($links2, 'http://news.google.pl/news');
return $links2;
// $GLOBALS['strona']= implode(' ', $links2);
}
function sprawdz($teraz, &$uzytkownika) {
global $kiedy;
global $znaleziono;
$_GLOBALS['znaleziono'] = false; //koniecznie i koniecznie tutaj
foreach($teraz as $pozycja => $lacze) {
echo "$lacze<br />";
if((strpos($lacze, $uzytkownika) !== false) && ($_GLOBALS['znaleziono'] != true)) { //$znaleziono - konieczne, żeby nie szukało dalej
echo "tak!";
$_GLOBALS['znaleziono'] = true;
// var_dump($_GLOBALS['znaleziono']);
return $pozycja;
exit;
}
}
if($znaleziono !== true) {
echo "jestem tutaj";
$kiedy += count($teraz);
return false;
}
}
function sortujaca($x, $y) {
$strona = $GLOBALS['strona'];
if(strpos($strona, $x) < strpos($strona, $y)) {
return -1;
}
else {
return 1;
}
}
function kazdastrona($zapytanie, &$uzytkownika = null) {
global $kiedy;
global $links2;
global $linki;
global $teraz;
$aktualna = 0;
settype($aktualna, "string");
do {
$url = "http://www.google.pl/search?hl=pl&lr=&client=opera&rls=pl&hs=bdt&q=";
$url .= $zapytanie;
$url .= "&start=";
$url .= $aktualna;
$url .= "&sa=N";
$strona = file_get_contents($url);
$snupi = new Snoopy;
$snupi->fetchlinks($url);
$linki = $snupi->results;
// alternatywasnoopy($url);
//print_r($linki);
$teraz = tylkowartosciowe($linki);
var_dump($teraz);
//var_dump($links2);
//var_dump($uzytkownika);
usort($teraz, 'sortujaca');
//$teraz = array_unique($teraz);
var_dump($teraz);
// var_dump(sprawdz($teraz, $uzytkownika));
$kazdastrona += 1;
if(sprawdz($teraz, $uzytkownika) !== false) {
$wtedy = $kiedy + sprawdz($teraz, $uzytkownika);
echo "<h1><center>Twoja pozycja w Google to: ".$wtedy.".</center><br />
<center>Twoja witryna znajduje się na ".$kazdastrona.". stronie wyszukiwań.</h1></center>";
exit;
}
unset($snupi);
settype($aktualna, "integer");
$aktualna += 10;
settype($aktualna, "string");
}
while(( $_GLOBALS['znaleziono'] !== true) ||(!strpos($strona, "Podana fraza - ") && !strpos($strona, " - nie została odnaleziona.")));
}
kazdastrona($zapytanie, $uzytkownika);
echo "</pre>";
?>
Działa ale z błędami, korzystam z biblioteki Snoopy... Gdzie jest błąd?