script PR

WRInaute impliqué
Bonjour le forum, j'ai un pb, mon PR ne s'affiche plus, j'ai troué un script qui marchait, mais aprés quelques manip, j'ai du m'embrouiller, et cela ne fonctionne plus.

Puis je solliciter votre aide, s'il vous plait.

ht*p://w*w.test-internet.com/tpr/pr.txt

Merci d'avance
 
WRInaute passionné
Tiens, en voilà un tout beau tout chaud...
Et qui fonctionne.

Code:
<?php
/******************
 * This code is released into the Public Domain
 * Licence GPL
 * Sample use:
 * include('pagerank.php');
 * $seoPR=new PagerankSeo();
 * echo $seoPR->getRank('http://www.referencement-seo.fr');
 * Update 14 Sept. 2006
 * Script PagerankSeo - http://www.referencement-seo.fr/
 ******************/

define('GOOGLE_MAGIC', 0xE6359A60);

// Use this class if your server is having problems with bitwise operations
class PagerankSeo extends PageRank {
	function xor32($a, $b) {
		return $this->int32($a) ^ $this->int32($b);
	}
	//return least significant 32 bits
	//works by telling unserialize to create an integer even though we provide a double value
	function int32($x) {
		return unserialize("i:$x;");
		//return intval($x); // This line doesn't work on all servers.
	}
	
	function mix($a,$b,$c) {
		$a -= $b; $a -= $c; $a = $this->xor32($a,$this->zeroFill($c,13));
		$b -= $c; $b -= $a; $b = $this->xor32($b,$a<<8);
		$c -= $a; $c -= $b; $c = $this->xor32($c,$this->zeroFill($b,13));
		$a -= $b; $a -= $c; $a = $this->xor32($a,$this->zeroFill($c,12));
		$b -= $c; $b -= $a; $b = $this->xor32($b,$a<<16);
		$c -= $a; $c -= $b; $c = $this->xor32($c,$this->zeroFill($b,5));
		$a -= $b; $a -= $c; $a = $this->xor32($a,$this->zeroFill($c,3));
		$b -= $c; $b -= $a; $b = $this->xor32($b,$a<<10);
		$c -= $a; $c -= $b; $c = $this->xor32($c,$this->zeroFill($b,15));
		return array($a,$b,$c);
	}
}	

//This class should work on most servers
class PageRank {
	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);
			/* the first byte of c is reserved for the length */
			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);
		/* report the result */
		return $mix[2];
	}
	
	//converts a string into an array of integers containing the numeric value of the char
	function strord($string) {
		for($i=0;$i<strlen($string);$i++) {
			$result[$i] = ord($string{$i});
		}
		return $result;
		}

	//returns -1 if no page rank was found
	function getRank($url){
		$ch = "6".$this->GoogleCH($this->strord("info:" . $url));
		
		$pagerank=-1;
		$fp = fsockopen("www.google.com", 80, $errno, $errstr, 30);
		if (!$fp) {
			echo "$errstr ($errno)<br />\n";
		} else {
			$out = "GET /search?client=navclient-auto&ch=" . $ch .  "&features=Rank&q=info:" . $url . " HTTP/1.1\r\n" ;
			$out .= "Host: www.google.com\r\n" ;
			$out .= "Connection: Close\r\n\r\n" ;
			fwrite($fp, $out);
			while (!feof($fp)) {
				$data = fgets($fp, 128);
				$pos = strpos($data, "Rank_");
				if($pos === false){
				}else{
				$pagerank = trim(substr($data, $pos + 9));
				}
			}
			fclose($fp);
		}
		return $pagerank;
	}
}
?>
 
WRInaute impliqué
pourtant il fonctionne ce script, je l'ai aussi utilisé et aucun problème à signaler

-http://outils.seebz.be/pagerank/
 
WRInaute occasionnel
Essaie de compléter avec le code suivant :

Code:
<?php
// On appelle le fichier contenant le script indiqué ci-dessus
include (pagerank.php);

// Instanciation
$pr = new PageRank ();

// Exemple d'affichage du PR
$pr_google = $pr -> getRank ('https://www.google.com');
echo $pr_google; // Affiche 10 (en principe)
?>
 
WRInaute impliqué
Je comprends pas,ou est le pb :

Code:
<?php 
/****************** 
 * This code is released into the Public Domain 
 * Licence GPL 
 * Sample use: 
 * include('pagerank.php'); 
 * $seoPR=new PagerankSeo(); 
 * echo $seoPR->getRank('http://www.referencement-seo.fr'); 
 * Update 14 Sept. 2006 
 * Script PagerankSeo - http://www.referencement-seo.fr/ 
 ******************/ 

define('GOOGLE_MAGIC', 0xE6359A60); 

// Use this class if your server is having problems with bitwise operations 
class PagerankSeo extends PageRank { 
   function xor32($a, $b) { 
      return $this->int32($a) ^ $this->int32($b); 
   } 
   //return least significant 32 bits 
   //works by telling unserialize to create an integer even though we provide a double value 
   function int32($x) { 
      return unserialize("i:$x;"); 
      //return intval($x); // This line doesn't work on all servers. 
   } 
    
   function mix($a,$b,$c) { 
      $a -= $b; $a -= $c; $a = $this->xor32($a,$this->zeroFill($c,13)); 
      $b -= $c; $b -= $a; $b = $this->xor32($b,$a<<8); 
      $c -= $a; $c -= $b; $c = $this->xor32($c,$this->zeroFill($b,13)); 
      $a -= $b; $a -= $c; $a = $this->xor32($a,$this->zeroFill($c,12)); 
      $b -= $c; $b -= $a; $b = $this->xor32($b,$a<<16); 
      $c -= $a; $c -= $b; $c = $this->xor32($c,$this->zeroFill($b,5)); 
      $a -= $b; $a -= $c; $a = $this->xor32($a,$this->zeroFill($c,3)); 
      $b -= $c; $b -= $a; $b = $this->xor32($b,$a<<10); 
      $c -= $a; $c -= $b; $c = $this->xor32($c,$this->zeroFill($b,15)); 
      return array($a,$b,$c); 
   } 
}    

//This class should work on most servers 
class PageRank { 
   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); 
         /* the first byte of c is reserved for the length */ 
         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); 
      /* report the result */ 
      return $mix[2]; 
   } 
    
   //converts a string into an array of integers containing the numeric value of the char 
   function strord($string) { 
      for($i=0;$i<strlen($string);$i++) { 
         $result[$i] = ord($string{$i}); 
      } 
      return $result; 
      } 

   //returns -1 if no page rank was found 
   function getRank($url){ 
      $ch = "6".$this->GoogleCH($this->strord("info:" . $url)); 
       
      $pagerank=-1; 
      $fp = fsockopen("www.google.com", 80, $errno, $errstr, 30); 
      if (!$fp) { 
         echo "$errstr ($errno)<br />\n"; 
      } else { 
         $out = "GET /search?client=navclient-auto&ch=" . $ch .  "&features=Rank&q=info:" . $url . " HTTP/1.1\r\n" ; 
         $out .= "Host: www.google.com\r\n" ; 
         $out .= "Connection: Close\r\n\r\n" ; 
         fwrite($fp, $out); 
         while (!feof($fp)) { 
            $data = fgets($fp, 128); 
            $pos = strpos($data, "Rank_"); 
            if($pos === false){ 
            }else{ 
            $pagerank = trim(substr($data, $pos + 9)); 
            } 
         } 
         fclose($fp); 
      } 
      return $pagerank; 
   } 
} 

// Instanciation 
$pr = new PageRank (); 

// Exemple d'affichage du PR 
$pr_google = $pr -> getRank ('https://www.google.com'); 
echo $pr_google; // Affiche 10 (en principe) 
?>

Je l'appelle comme ça :
h*tp://w*w.test-internet.com/tpr/pr1.php?url=http://www.rachatdecredits.com

C'est bien url la variable?


Au passage, il est magnifique ton site Koxin-L.
 
WRInaute impliqué
merci pour vos interventions, c'est trés sympa et généreux, cependant, je ne comprends pas le concept de me répondre a demi mot ou par des reprises de code.

Je ne comprends pas ce que je dois faire, ne pourrait on pas simplement m'expliquer sans me dire, relis, la réponse est dans la qestion, etc....

On dirait que c'est ultra mystérieux tout ça.

sur cela :
Code:
Sample use: 
include('pagerank.php'); 
$seoPR=new PagerankSeo(); 
echo $seoPR->getRank('http://www.referencement-seo.fr');

Je comprends que dans le code, je dois mettre un include vers le fichier pagerank.php, qui devrait contenir les deux lignes :
$seoPR=new PagerankSeo();
echo $seoPR->getRank('http://www.referencement-seo.fr');

si c'est ça cela ne marche pas non plus...

S'il vous plait une explication claire, merci.
 
WRInaute occasionnel
rachatdecredits a dit:
merci pour vos interventions, c'est trés sympa et généreux, cependant, je ne comprends pas le concept de me répondre a demi mot ou par des reprises de code.

Je ne comprends pas ce que je dois faire, ne pourrait on pas simplement m'expliquer sans me dire, relis, la réponse est dans la qestion, etc....

On dirait que c'est ultra mystérieux tout ça.

sur cela :
Code:
Sample use: 
include('pagerank.php'); 
$seoPR=new PagerankSeo(); 
echo $seoPR->getRank('http://www.referencement-seo.fr');

Je comprends que dans le code, je dois mettre un include vers le fichier pagerank.php, qui devrait contenir les deux lignes :
$seoPR=new PagerankSeo();
echo $seoPR->getRank('http://www.referencement-seo.fr');

si c'est ça cela ne marche pas non plus...

S'il vous plait une explication claire, merci.

Tu crées un fichier pagerank.php contenant ce code-ci :

Code:
<?php
/******************
 * This code is released into the Public Domain
 * Licence GPL
 * Sample use:
 * include('pagerank.php');
 * $seoPR=new PagerankSeo();
 * echo $seoPR->getRank('http://www.referencement-seo.fr');
 * Update 14 Sept. 2006
 * Script PagerankSeo - http://www.referencement-seo.fr/
 ******************/

define('GOOGLE_MAGIC', 0xE6359A60);

// Use this class if your server is having problems with bitwise operations
class PagerankSeo extends PageRank {
   function xor32($a, $b) {
      return $this->int32($a) ^ $this->int32($b);
   }
   //return least significant 32 bits
   //works by telling unserialize to create an integer even though we provide a double value
   function int32($x) {
      return unserialize("i:$x;");
      //return intval($x); // This line doesn't work on all servers.
   }
   
   function mix($a,$b,$c) {
      $a -= $b; $a -= $c; $a = $this->xor32($a,$this->zeroFill($c,13));
      $b -= $c; $b -= $a; $b = $this->xor32($b,$a<<8);
      $c -= $a; $c -= $b; $c = $this->xor32($c,$this->zeroFill($b,13));
      $a -= $b; $a -= $c; $a = $this->xor32($a,$this->zeroFill($c,12));
      $b -= $c; $b -= $a; $b = $this->xor32($b,$a<<16);
      $c -= $a; $c -= $b; $c = $this->xor32($c,$this->zeroFill($b,5));
      $a -= $b; $a -= $c; $a = $this->xor32($a,$this->zeroFill($c,3));
      $b -= $c; $b -= $a; $b = $this->xor32($b,$a<<10);
      $c -= $a; $c -= $b; $c = $this->xor32($c,$this->zeroFill($b,15));
      return array($a,$b,$c);
   }
}   

//This class should work on most servers
class PageRank {
   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);
         /* the first byte of c is reserved for the length */
         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);
      /* report the result */
      return $mix[2];
   }
   
   //converts a string into an array of integers containing the numeric value of the char
   function strord($string) {
      for($i=0;$i<strlen($string);$i++) {
         $result[$i] = ord($string{$i});
      }
      return $result;
      }

   //returns -1 if no page rank was found
   function getRank($url){
      $ch = "6".$this->GoogleCH($this->strord("info:" . $url));
      
      $pagerank=-1;
      $fp = fsockopen("www.google.com", 80, $errno, $errstr, 30);
      if (!$fp) {
         echo "$errstr ($errno)<br />\n";
      } else {
         $out = "GET /search?client=navclient-auto&ch=" . $ch .  "&features=Rank&q=info:" . $url . " HTTP/1.1\r\n" ;
         $out .= "Host: www.google.com\r\n" ;
         $out .= "Connection: Close\r\n\r\n" ;
         fwrite($fp, $out);
         while (!feof($fp)) {
            $data = fgets($fp, 128);
            $pos = strpos($data, "Rank_");
            if($pos === false){
            }else{
            $pagerank = trim(substr($data, $pos + 9));
            }
         }
         fclose($fp);
      }
      return $pagerank;
   }
}
?>

Tu crées un fichier exemple.php contenant ce code-là :

Code:
<?php
// On appelle le fichier contenant le script indiqué ci-dessus
include ('pagerank.php');

// Instanciation
$pr = new PageRank ();

// Exemple d'affichage du PR
$pr_google = $pr -> getRank ('https://www.google.com');
echo $pr_google; // Affiche 10 (en principe)
?>

Tu mets en ligne ces deux fichiers, que tu places dans un même répertoire, avec un client FTP (FileZilla, par exemple).

Avec ton navigateur préféré, tu tapes l'URL vers le fichier exemple.php et ça doit marcher.

Ai-je été clair ?
 
WRInaute impliqué
Merci oui effetcivement trés clair et dispo, merci.

Voici le resultat de l'appel de exmple.php :
Warning: fsockopen() [function.fsockopen]: unable to connect to www.google.com:80 in /home/clients/www/test-internet.com/www/tpr/pagerank.php on line 119
Connection timed out (110)
-1

Désolés, ne marche toujours pas :
ligne 119 :
$fp = fsockopen("www.google.com", 80, $errno, $errstr, 30);
 
WRInaute occasionnel
Remplace le bout de code suivant

Code:
$fp = fsockopen("www.google.com", 80, $errno, $errstr, 30);

par celui-ci :

Code:
$fp = fsockopen("https://www.google.com", 80, $errno, $errstr, 30);
 
WRInaute impliqué
malgrés votre patience, je ne parviens toujours pas a faire fonctionner le script, j'ai contacté mon hebergeur, et selon lui il n'y a aucune restriction de son coté.

Je fais quelques script en PHP, donc je pense un tout petit peu comprendre vos explications, mais toujours rien, donc...

Je vous adresse les codes suivants, non pas pour que vous me fassiez le script, mais seulement pour verifier que tout est bien installé comme vous me l'aviez indiqué :

code FTP :
adresse de l'hote : ftp.test-internet.com
login : test-internet_com
mdp : 5iJEUG8

Je précise aux modo, que ces codes seront modifiés aprés modification des scripts, ne vous inquietez pas :wink:

url d'appel du script : ht*p://w*w.test-internet.com/exemple.php

Autre chose, j'avais téléchargé votre fichier zippé sur votre site et avec le fichier exemple.php du ZIP cela fonctionne mieux mais j'aui un PR a -1

voir url suivante : ht*p://w*w.test-internet.com/exemple1.php


Merci milles fois encore.
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut