Erstklassige Tintenpatronen für den Brother MFC-J6910 günstig und zuverlässig bei Patronenshop24.de.

Alle Zeiten sind UTC [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: PRupdater
Neuer BeitragVerfasst: Fr 20. Jul 2007, 15:04 
Offline
Administrator
Benutzeravatar

Registriert: Fr 20. Jul 2007, 07:11
Beiträge: 82
Plz/Ort: Berlin
Durch die PHP-Versionen ist eine Pagerankabfrage nicht überall mehr möglich ....
Hier eine kleine Hilfe, wie Ihr trotzdem den PR updaten könnt!

1. Erstelle eine Datei z.B. prupdater.php
2. Trage dort diesen CODE ein:
Code:
<?php
set_time_limit(3600);
error_reporting(E_ERROR );
$JOB="PRUPDATE"; //PRUPDATE or RECPRCHECK
$usersite="."; //The url you expect to find at reciprocal location
$username="Datenbank-Username";
$password="Datenbank-Passwort";
$dbname="Datenbank-Benutzername";
$hostname="localhost";
$linktable = "PLD_LINK";
$BATCHSIZE = 500;  //How many
$DELAY        = 30;  //Seconds delay before doing next batch
$DEBUG = 0;  // if set to 1, only prints text, do not update.
define('GOOGLE_MAGIC', 0x00000000E6359A60); // CHANGED (64Bit)
if ( $username == "" || $password == "" || $dbname == "" || $hostname == "" ) {
    echo "Please set username, password, dbname, and hostname";
    exit;
}
$link = mysql_connect($hostname,$username,$password);
if (!$link) {
    die('Not connected : ' . mysql_error());
}
$db_selected = mysql_select_db("$dbname", $link);
if (!$db_selected) {
    die ("Can't use $dbname : " . mysql_error($link ));
}
$query="SELECT RECPR_LAST_CHECKED,FEATURED,RECPR_VALID,RECPR_URL,URL,PAGERANK FROM $linktable";
$result=mysql_query($query,$link );
if ($result == null) die ("Error in Select : " . mysql_error($link ));
$num=mysql_numrows($result );
$i=0;
$updatedrows=0;
$body = <<<EOT
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>PR Updated</TITLE>
</HEAD><BODY>
EOT;
print $body;
while ($i < $num) {
    $pagerank=mysql_result($result,$i,"PAGERANK");
    $reciprocal=mysql_result($result,$i,"RECPR_URL");
    $url=mysql_result($result,$i,"URL" );
    $featured=mysql_result($result,$i,"FEATURED" );
    $lastchecked=mysql_result($result,$i,"RECPR_LAST_CHECKED");
    flush();
    switch ($JOB) {
    case "PRUPDATE":
        $google= new google_pr();
        $newpr=$google->get_page_rank($url);
        if ($pagerank <> $newpr && $newpr  != -1) {
            ++$updatedrows;
            print $i+1 . ") PR: $pagerank (New PR=$newpr) ::: $url UPDATING -- ";
            $query="UPDATE $linktable SET PAGERANK=$newpr WHERE URL='$url'";
            if ($DEBUG==0) mysql_query($query,$link );
            echo " Record Updated<br>";
        } else {
            print $i+1 . ") PR: $pagerank (PR=$newpr) ::: $url<br>";
        }
        break;
    case "RECPRCHECK":
        if ($featured != 1 and (strtotime($lastchecked) < strtotime("-2 weeks"))) {
            if ($reciprocal == "") break;
            $htmlString=file_get_contents($reciprocal,false);
            if (eregi($usersite, $htmlString)) {
                   echo "'link found on $reciprocal<br>";
                $google= new google_pr();
                $recpr_pagerank=$google->get_page_rank($reciprocal);
                $query="UPDATE $linktable SET RECPR_VALID=2,RECPR_LAST_CHECKED=NOW(),RECPR_PAGERANK=$recpr_pagerank WHERE URL='$url'";
                if ($DEBUG==0) mysql_query($query,$link );
                ++$updatedrows;
            } else {
                echo "'link <b>NOT</b> found on $reciprocal<br>";
                $query="UPDATE $linktable SET RECPR_VALID=1 WHERE URL='$url'";
                if ($DEBUG==0) mysql_query($query,$link );
                ++$updatedrows;
            }
        }
        break;
    }
    ++$i;
    if (fmod($i,$BATCHSIZE) == 0) sleep($DELAY); //Sleep 10 sec for each block of 50 links.
}
mysql_close($link);
$footer = <<<EOT
<br>
<b>Finished checking through $num links in your database.
<br>
$updatedrows of $num where not up2date and was corrected.</b>
<br>
</BODY></HTML>
EOT;
print $footer;
class google_pr{
var $checksum;
function google_pr(){
    $this->checksum='';
}
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; $this->toInt32($a); $a = (int)($a ^ ($this->zeroFill($c,13)));
    $b -= $c; $b -= $a; $this->toInt32($b); $b = (int)($b ^ ($a<<8));
    $c -= $a; $c -= $b; $this->toInt32($c); $c = (int)($c ^ ($this->zeroFill($b,13)));
    $a -= $b; $a -= $c; $this->toInt32($a); $a = (int)($a ^ ($this->zeroFill($c,12)));
    $b -= $c; $b -= $a; $this->toInt32($b); $b = (int)($b ^ ($a<<16));
    $c -= $a; $c -= $b; $this->toInt32($c); $c = (int)($c ^ ($this->zeroFill($b,5)));
    $a -= $b; $a -= $c; $this->toInt32($a); $a = (int)($a ^ ($this->zeroFill($c,3)));
    $b -= $c; $b -= $a; $this->toInt32($b); $b = (int)($b ^ ($a<<10));
    $c -= $a; $c -= $b; $this->toInt32($c); $c = (int)($c ^ ($this->zeroFill($b,15)));
    return array($a,$b,$c);
}
function strord($string) {
    for($i=0;$i<strlen($string);$i++) {
        $result[$i] = ord($string{$i});
    }
    return $result;
}
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 getGoogleChecksum($url) {
    $url="info:"."http://".str_replace('http://','',$url);
    $tmp_ch=$this->strord($url);
    $this->checksum=sprintf("%u", $this->GoogleCH($tmp_ch));
    return $this->checksum;
}
function toInt32(& $x) {
    $z = hexdec(80000000);
    $y = (int)$x;
    if($y==-$z&&$x<-$z){
        $y = (int)((-1)*$x);
        $y = (-1)*$y;
    }
    $x = $y;
}
function get_page_rank($url){
    //$url = preg_replace('/\?.*$/','?',$url);
    $reqgr = "info:".$url;
    $reqgre = "info:".urlencode($url);
    $gch="6".$this->getGoogleChecksum($url);
    $patern = '/^http:/';
    $patern2 = '/^http:\/\/.*google\..*\/(search|images|groups|news).*/';
    $patern3 = '/^http:\/\/localhost.*/';
    $patern4 = '/^http:\/\/(127\.|10\.|172\.16|192\.168).*/'; //local ip
    if(!preg_match($patern, $url) || preg_match($patern2, $url) ||
       preg_match($patern3, $url) || preg_match($patern4, $url)){
           return -1;
    }else{
        $fsock = fsockopen('toolbarqueries.google.com', 80, $errno, $errstr);
        if ( !$fsock ){
            return -1;
        }
        $base_get = "/search?client=navclient-auto&ch=".$gch."&ie=UTF-8&oe=UTF-8&features=Rank&q=".$reqgre;
        fputs($fsock, "GET $base_get HTTP/1.1\r\n");
        fputs($fsock, "HOST: toolbarqueries.google.com\r\n");
        fputs($fsock, "User-Agent: Mozilla/5.0 (compatible; GoogleToolbar 3.0.114-big; Windows XP 5.1)\r\n");
        fputs($fsock, "Connection: close\r\n\r\n");
        while(!feof($fsock)){
            $res['content'] .= fread($fsock, 1024);
        }
        fclose($fsock);

        if(preg_match('/Rank_.*?:.*?:(\d+)/i', $res['content'], $m)){
            return $m[1];
        }else{
            return -1;
        }
    }
}
}
?>


3. Nun Deine Datenbank-Daten eintragen
4. Lade die Datei ins ROOT-Verzeichnis
5. Rufe die Datei auf www.deine-domain.de/prupdater.php

Jetzt kannst Du den verlauf sehen .... wenn alles funktioniert, sollten die PR´s aktualisiert sein.


Nach oben
 Profil E-Mail senden  
 
 Betreff des Beitrags: Re: PRupdater
Neuer BeitragVerfasst: Do 22. Nov 2007, 23:23 
Offline

Registriert: Mo 17. Sep 2007, 08:44
Beiträge: 12
ich mu0 gestehen, es funktioniert nicht bei mir. folgender Fehler: Not connected : Access denied for user 'Datenbank-Userna'@'localhost' (using password: YES) Bekommt kein Datenbananbindung, obwohl es bei anderen geht.

Hat einer Hilfe????


Nach oben
 Profil E-Mail senden  
 
 Betreff des Beitrags: Re: PRupdater
Neuer BeitragVerfasst: So 25. Nov 2007, 07:56 
Offline
Administrator
Benutzeravatar

Registriert: Fr 20. Jul 2007, 07:11
Beiträge: 82
Plz/Ort: Berlin
$username="Datenbank-Username";
$password="Datenbank-Passwort";
$dbname="Datenbank-Benutzername";
$hostname="localhost";

Das richtig ausfüllen ... der Fehler besagt, dass Du die Daten falsch eingegeben hast.


Nach oben
 Profil E-Mail senden  
 
 Betreff des Beitrags: Re: PRupdater
Neuer BeitragVerfasst: Mo 26. Nov 2007, 12:45 
Offline

Registriert: Mo 17. Sep 2007, 08:44
Beiträge: 12
komisch, alles ist ok eingetragen und trotzdem kommt der gleiche Fehler. Ber nme anderen Programm ist das gleiche Problem. Ic vermute, das mich irgendwas nicht reinlässt...


Nach oben
 Profil E-Mail senden  
 
 Betreff des Beitrags: Re: PRupdater
Neuer BeitragVerfasst: Mo 26. Nov 2007, 12:53 
Offline

Registriert: Mo 17. Sep 2007, 08:44
Beiträge: 12
so, ich hab ihn mal auf eine andere Adresse gelegt. Da läuft er. Aber er setzt alles auf PR-1. Das ist nicht lustig.
Obwohl od rewrite gesetzt ist...Wo könnte der Fehler liegen?


Nach oben
 Profil E-Mail senden  
 
 Betreff des Beitrags: Re: PRupdater
Neuer BeitragVerfasst: Sa 8. Dez 2007, 07:35 
Offline
Administrator
Benutzeravatar

Registriert: Fr 20. Jul 2007, 07:11
Beiträge: 82
Plz/Ort: Berlin
IP gesperrt?


Nach oben
 Profil E-Mail senden  
 
 Betreff des Beitrags: Re: PRupdater
Neuer BeitragVerfasst: Do 10. Jan 2008, 11:05 
Offline

Registriert: Mo 17. Sep 2007, 08:44
Beiträge: 12
von wem sollte die IP gesperrt sein?
habe ein gutes Verhältnis mit meinem Hoster....


Nach oben
 Profil E-Mail senden  
 
 Betreff des Beitrags: Re: PRupdater
Neuer BeitragVerfasst: Fr 11. Jan 2008, 10:17 
Offline
Administrator
Benutzeravatar

Registriert: Fr 20. Jul 2007, 07:11
Beiträge: 82
Plz/Ort: Berlin
von Google?


Nach oben
 Profil E-Mail senden  
 
 Betreff des Beitrags: Re: PRupdater
Neuer BeitragVerfasst: Mo 29. Jun 2009, 15:57 
Offline

Registriert: Mo 17. Sep 2007, 08:44
Beiträge: 12
also der updater geht,danke aber er bleibt bei 1598 aufrufen stehen, ich habe jedoch 216000 links drin. wie kann ich ihn denn einstellen, das er alle updatet. über set tim limit?
wäre über ne antwort froh.
danke im voraus


Nach oben
 Profil E-Mail senden  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 

Alle Zeiten sind UTC [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: Keine Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen
Du darfst keine Antworten zu Themen in diesem Forum erstellen
Du darfst deine Beiträge in diesem Forum nicht ändern
Du darfst deine Beiträge in diesem Forum nicht löschen

cron
Powered by phpBB © 2008 phpBB Group
Ein Projekt vom phpLD Network | UDL Intermedia Group | XTRA RSS | schufafrei

Dieses Forum ist ein Privatforum vom phpLD Netzwerk Berlin.
Wenn Sie das deutsche Supportforum suchen, gehen Sie bitte auf die Hersteller-Homepage.
Um das Forum vollständig zu sehen und nutzen zu können, müssen Sie sich erst kostenlos anmelden!