Seite 1 von 1

PageRank Abfrage per php Script

Verfasst: 20.08.2007, 20:57
von uwew
Hallo Forum,
es existieren ja verschiedene Scripts zum abfragen des PR im Netz. Meistens ist ja folgende Funktion zum abfragen enthalten:

function getPR($_url) {
$url = 'info:'.$_url;
$ch = GCH(strord($url));
$url='info:'.urlencode($_url);
$pr = file("https://www.google.com/search?client=na ... ank&q=$url");
$pr_str = implode("", $pr);
return substr($pr_str,strrpos($pr_str, ":")+1);
}
Die Zeile mit $pr= file("https://www.google.com ...
liest dann den PR bei Google (oder sollte dies jedenalls tuen) aus.
Bei mir kommt aber immer nur ein "HTTP request failed! HTTP/1.0 403 Forbidden"
Hat Google da was geändert? Wie fragen die diversen Seiten im Internet das ab?
Danke für die Hilfe,

Tschüß
Uwe

Verfasst:
von
SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Verfasst: 20.08.2007, 21:24
von nethosting24
<?php
class pagerank
{
function pagerank($url)
{
$this->myLink = $url;
define('GOOGLE_MAGIC', 0xE6359A60);
}
function 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;
}
function mix($a,$b,$c)
{
$a -= $b; $a -= $c; $a ^= ($this->zeroFill($c,13));
$b -= $c; $b -= $a; $b ^= ($a<<8);
$c -= $a; $c -= $b; $c ^= ($this->zeroFill($b,13));
$a -= $b; $a -= $c; $a ^= ($this->zeroFill($c,12));
$b -= $c; $b -= $a; $b ^= ($a<<16);
$c -= $a; $c -= $b; $c ^= ($this->zeroFill($b,5));
$a -= $b; $a -= $c; $a ^= ($this->zeroFill($c,3));
$b -= $c; $b -= $a; $b ^= ($a<<10);
$c -= $a; $c -= $b; $c ^= ($this->zeroFill($b,15));

return array($a,$b,$c);
}
function GoogleCH($url, $length=null, $init=GOOGLE_MAGIC)
{
if(is_null($length))
{
$length = sizeof($url);
}
$a = $b = 0x9E3779B9;
$c = $init;
$k = 0;
$len = $length;
while($len >= 12)
{
$a += ($url[$k+0] +($url[$k+1]<<8) +($url[$k+2]<<16) +($url[$k+3]<<24));
$b += ($url[$k+4] +($url[$k+5]<<8) +($url[$k+6]<<16) +($url[$k+7]<<24));
$c += ($url[$k+8] +($url[$k+9]<<8) +($url[$k+10]<<16)+($url[$k+11]<<24));
$mix = $this->mix($a,$b,$c);
$a = $mix[0]; $b = $mix[1]; $c = $mix[2];
$k += 12;
$len -= 12;
}
$c += $length;

switch($len)
{
case 11: $c+=($url[$k+10]<<24);
case 10: $c+=($url[$k+9]<<16);
case 9 : $c+=($url[$k+8]<<8);
case 8 : $b+=($url[$k+7]<<24);
case 7 : $b+=($url[$k+6]<<16);
case 6 : $b+=($url[$k+5]<<8);
case 5 : $b+=($url[$k+4]);
case 4 : $a+=($url[$k+3]<<24);
case 3 : $a+=($url[$k+2]<<16);
case 2 : $a+=($url[$k+1]<<8);
case 1 : $a+=($url[$k+0]);
}
$mix = $this->mix($a,$b,$c);

return $mix[2];
}

function strord($string)
{
for($i=0;$i<strlen($string);$i++)
{
$result[$i] = ord($string{$i});
}
return $result;
}

function getrank($url)
{
global $http;
$url = 'info:'.$url;
$ch = $this->GoogleCH($this->strord($url));

$url = urlencode($url);
$file = "https://www.google.com/search?client=na ... k&q=".$url;
$data = file($file);

$rankarray = explode (':', $data[2]);
$rank = $rankarray[2];
return $rank;
return '0';
}
}
?>


Gruß Marc


-------------

Verfasst: 20.08.2007, 22:24
von uwew
Hi Marc,
danke für die schnelle Hilfe,
nur was soll ich für die Smilies einsetzen?
Ich hoffe nicht das das ein Intelligenztest ist, da ist es nicht so gut bestellt bei mir :-)

Danke & Tschüß
Uwe

Verfasst: 21.08.2007, 03:46
von MBDealer
Hallo Uwe,

dieses Smilie entstehen hier im Forum wenn man 8) schreibt und bei den Optionen "Smilies in diesem Beitrag deaktivieren" nicht angehakt hat.

Also einfach alle Smilies mit 8) ersetzen und es sollte funktionieren.

Verfasst: 21.08.2007, 07:25
von Shen
Nebenbei gibts auch fertige Scripts als Download.

Zum Beispiel hier:
https://www.gaijin.at/scrphppagerank.php

Verfasst: 21.08.2007, 09:09
von Webbymaster
Ich hatte ebenfalls so ein Script. mittlerweile funktioniert es nicht mehr. Ich habe dieselbe Problematik wie Uwe.

Bei dem Script von gaiijin gehts aber auch nicht, zumindest nicht unter php4. da bekomme ich nur die meldung: Die eingegebene URL konnte nicht erreicht werden!


Kann es an der PHP-Version liegen? Gibt es aktuell vielleicht ein Script was wirklich funktioniert?

Gruß

Verfasst: 21.08.2007, 09:31
von maggl
Da ich der Überzeugung bin, das nur Leute das Script nutzen sollten, die sich auch mit der Materie des Codens richtig gut auskennen, verate ich nur soviel, das Script arbeitet einwandfrei - wurde schon zigmal kopiert ohne das die Leute wissen was es eigentlich macht und ja ich bin eine kleine Ratte und verate nur soviel :p

Es liegt an Eurem Server ;)

Verfasst: 21.08.2007, 09:39
von uwew
@MBDealer
Danke, dann sieht das schon alles besser aus.

@Maggi
ein bisschen Coden kann ich schon, so seit ca. 20 Jahren.. Kann es sein das es was mit 32 / 64 bit Linux zu tun hat wegen Integer Überlauf oder sowas?

Verfasst: 21.08.2007, 10:17
von Webbymaster
ja, also es liegt wohl am 64-bit-System. Auf einem 32er läuft es einwandfrei.