Comment afficher le pagerank depuis un site distant ?

WRInaute passionné
Bonjour
J'utilise sur l'un de mes sites un petit script php qui me permet d'afficher l'image du pagerank d'un site .Je souhaiterais à partir d'un site distant pouvoir afficher cette petite barre verte mais je n'y parvient pas .

Dans un fichier nommé pagerank.php
Code:
<?php 
define('GOOGLE_MAGIC', 0xE6359A60); 
class pageRank{
var $pr; 
 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; 
 } 
 
 function printrank($url){
  $ch = "6".$this->GoogleCH($this->strord("info:" . $url)); 
  
  $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 = substr($data, $pos + 9);
           $this->pr_image($pagerank);
         }
     }
     fclose($fp); 
  }
 }
function pr_image($pagerank){
  if($pagerank == 0){
   $this->pr = "<img src=\"/images/pr0.gif\" alt=\"PageRank " .$pagerank. " out of 10\">" ;
   }elseif($pagerank == 1){
   $this->pr = "<img src=\"/images/pr1.gif\" alt=\"PageRank " .$pagerank. " out of 10\">" ;
   }elseif($pagerank == 2){
   $this->pr = "<img src=\"/images/pr2.gif\" alt=\"PageRank " .$pagerank. " out of 10\">" ;
   }elseif($pagerank == 3){
   $this->pr = "<img src=\"/images/pr3.gif\" alt=\"PageRank " .$pagerank. " out of 10\">" ;
   }elseif($pagerank == 4){
   $this->pr = "<img src=\"../images/pr4.gif\" alt=\"PageRank " .$pagerank. " out of 10\">" ;
   }elseif($pagerank == 5){
   $this->pr = "<img src=\"/images/pr5.gif\" alt=\"PageRank " .$pagerank. " out of 10\">" ;
   }elseif($pagerank == 6){
   $this->pr = "<img src=\"/images/pr6.gif\" alt=\"PageRank " .$pagerank. " out of 10\">" ;
   }elseif($pagerank == 7){
   $this->pr = "<img src=\"/images/pr7.gif\" alt=\"PageRank " .$pagerank. " out of 10\">" ;
   }elseif($pagerank == 8){
   $this->pr = "<img src=\"/images/pr8.gif\" alt=\"PageRank " .$pagerank. " out of 10\">" ;
   }elseif($pagerank == 9){
   $this->pr = "<img src=\"/images/pr9.gif\" alt=\"PageRank " .$pagerank. " out of 10\">" ;
   }else{
   $this->pr = "<img src=\"/images/pr10.gif\" alt=\"PageRank " .$pagerank. " out of 10\">" ;
  }
 }
 function get_pr(){
  return $this->pr;
 }
}
?>

Ici le code affichant le pagerank que j'ai mis dans un fichier nommé code.php:
Code:
<?php
include("pagerank.php");
$gpr = new pageRank();
$gpr->printrank("$url");
//display image
echo $gpr->get_pr();
?>
Le resultat se trouve ici -http://referencement-link.com/code.php .
L'image du pr change si je fait par exemple -http://referencement-link.com/code.php?url=https://www.webrankinfo.com .

Maintenant comment faire pour afficher cette petite barre verte sur un site A alors que le script est installé sur un site B ?

J'aimerais beaucoup que ce soit un code du genre
Code:
<img src=\"http://www.mon-site.com/img.php?=$url\" />
qui me permette cette affichage mais je seche completement.
:?
Merci de votre aide si vous vous arretez sur le sujet :)
 
WRInaute discret
Il faut entrer les adresses absolues des images.
Le php est interprété chez toi, mais les adresses relatives des images concerne le site qui va les afficher

Je me suis permis de changer ta fonction pr_image,
pour qu'elle soit plus facile à lire

Code:
function pr_image($pagerank){
	for($i=0;$i<=10;$i++){
		if($pagerank == $i){
			$this->pr = "<img src=\"http://referencement-link.com/images/pr".$pagerank.".gif\" alt=\"PageRank " .$pagerank. " out of 10\">" ;
			break;
		}
	}
	return $this->pr;
}

Chez moi ça marche
 
WRInaute passionné
fosseene a dit:
pourquoi ne pas faire plus simple et utiliser
www.mon-pagerank.com ?


fosseene
Tout simplement parce que je n'ai pas envie de passer par un site tiers.Ce code fonctionne sur mon www mais je voudrait pouvoir afficher le pr sur un free.fr qui n'autorise pas cette fonction.

Merci DomicilePC , cependant mon petit niveau en php me fait defaut ...Apres plusieurs tentatives,je ne parvient pas à le faire fonctionner .De plus,je ne sais pas comment l'appeller depuis un site distant (dans l'hypotese que j'y parvienne) :( .
 
Discussions similaires
Haut