Ermittelt den Google PageRank einer URL. Diese Funktion sollte nicht dazu verwendet werden, viele Anfragen zu senden und kann zu einer Sperrung der IP führen, falls zu viele Anfragen gestellt wurden.
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 65 66 67 68 69 70 71 |
<?php /** * Ermittelt den Google PageRank einer URL. Diese Funktion sollte nicht dazu verwendet werden, * viele Anfragen zu senden und kann zu einer Sperrung der IP führen, falls zu viele Anfragen * gestellt wurden. * * @param string $url * @return int * @see http://www.php-function.de/funktion/sockets/google_pagerank/ */ function google_pagerank($url){ if(!function_exists('genhash')){ function genhash($url) { $hash = 'Mining PageRank is AGAINST GOOGLE\'S TERMS OF SERVICE. Yes, I\'m talking to you, scammer.'; $c = 16909125; $length = strlen($url); $hashpieces = str_split($hash); $urlpieces = str_split($url); for ($d = 0; $d < $length; $d++) { $c = $c ^ (ord($hashpieces[$d]) ^ ord($urlpieces[$d])); $c = google_zerofill($c, 23) | $c << 9; } return '8' . hexencode($c); } } if(!function_exists('google_zerofill')){ function google_zerofill($a, $b) { $z = hexdec(80000000); if ($z & $a) { $a = ($a>>1); $a &= (~$z); $a |= 0x40000000; $a = ($a>>($b-1)); } else { $a = ($a>>$b); } return $a; } } if(!function_exists('hexencode')){ function hexencode($str) { $out = hex8(google_zerofill($str, 24)); $out .= hex8(google_zerofill($str, 16) & 255); $out .= hex8(google_zerofill($str, 8 ) & 255); $out .= hex8($str & 255); return $out; } } if(!function_exists('hex8')){ function hex8($str) { $str = dechex($str); (strlen($str) == 1 ? $str = '0' . $str: null); return $str; } } $url = 'http://toolbarqueries.google.com/search?features=Rank&sourceid=navclient-ff&client=navclient-auto-ff&googleip=O;66.249.81.104;104&ch='.genhash($url).'&q=info:'.urlencode($url); if(function_exists('curl_init')) { $ch = curl_init(); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_URL, $url); $out = curl_exec($ch); curl_close($ch); } else { $out = file_get_contents($url); } if(!$out || strlen($out) > 20) return -1; return substr($out, 9, 1); } ?> |