Aller au contenu principal
loading

Fonction de calcul du page rank google en PHP

POSTÉ DANS PHP TAGS PHP AUTEUR herve COMMENTAIRES 7

Voici une fonction PHP qui calcule le page rank google d'une page donnée.
La fonction est extraite du site http://code.seebz.net/p/google-pagerank/ :

<?php

/**
 * google_pagerank <http://code.seebz.net/p/googlepagerank/>
 *
 * Copyright (c) 2010 Sébastien Corne, <http://seebz.net>
 *
 * This script is an adaptation of the GooglePR Class made by FloBaoti.
 * <http://www.phpcs.com/codes/GOOGLE-PAGERANK-CHECKSUM-ALGORITHM_40649.aspx>
 */

function google_pagerank($url, $server = 'toolbarqueries.google.com')
{
	// Usefulls functions
	$fStrToNum = create_function('$str, $check, $magic',
	'
		$int32Unit = 4294967296; // 2^32
		$length = strlen($str);
		for ($i = 0; $i < $length; $i++){
			$check *= $magic;
			if ($check >= $int32Unit){
				$check = ($check - $int32Unit * (int) ($check / $int32Unit));
				$check = ($check < -2147483648) ? ($check + $int32Unit) : $check;
			}
			$check += ord($str{$i});
		}
		
		return $check;
	');
	$fHashURL = create_function('$str',
	'
		$fStrToNum = "'.$fStrToNum.'";
		$check1 = $fStrToNum($str, 0x1505, 0x21);
		$check2 = $fStrToNum($str, 0, 0x1003F);
		
		$check1 >>= 2;
		$check1 = (($check1 >> 4) & 0x3FFFFC0 ) | ($check1 & 0x3F);
		$check1 = (($check1 >> 4) & 0x3FFC00 ) | ($check1 & 0x3FF);
		$check1 = (($check1 >> 4) & 0x3C000 ) | ($check1 & 0x3FFF);
		$t1 = (((($check1 & 0x3C0) << 4) | ($check1 & 0x3C)) <<2 ) | ($check2 & 0xF0F );
		$t2 = (((($check1 & 0xFFFFC000) << 4) | ($check1 & 0x3C00)) << 0xA) | ($check2 & 0xF0F0000 );
		
		return ($t1 | $t2);
	');
	$fCheckHash = create_function('$hashNum',
	'
		$checkByte = 0; $flag = 0;
		$hashStr = sprintf("%u", $hashNum) ;
		$length = strlen($hashStr);
		for ($i = $length-1; $i >= 0; $i--){
			$re = $hashStr{$i};
			if (1 === ($flag % 2)){
				$re += $re;
				$re = (int)($re / 10) + ($re % 10);
			}
			$checkByte += $re;
			$flag ++;
		}
		$checkByte %= 10;
		if (0 !== $checkByte){
			$checkByte = 10 - $checkByte;
			if (1 === ($flag % 2) ){
				if (1 === ($checkByte % 2)){
					$checkByte += 9;
				}
				$checkByte >>= 1;
			}
		}
		
		return "7" . $checkByte . $hashStr;
	');
	
	// Checksum calcul
	$checksum = $fCheckHash($fHashURL($url));
	
	// Google request
	$requestUrl = sprintf(
		'http://%s/search?client=navclient-auto&ch=%s&ie=UTF-8&oe=UTF-8&features=Rank&q=info:%s',
		$server,
		$checksum,
		urlencode($url)
	);

	if ( ($c = @file_get_contents($requestUrl)) === false )
		return false;
	elseif( empty($c) )
		return -1;
	else
		return intval(substr($c, strrpos($c, ':')+1));
}

?>

 



7 commentaire

FranHof (non vérifié)   03/06/2019

Dosage Amount Of Cephalexin For Dogs <a href=http://mpphr.com>ou acheter du priligy</a> Amoxicillin Fail The Drug Test

KelBync (non vérifié)   08/06/2019

Zithromax 250 Mg Uses Prix Viagra En Pharmacie France <a href=http://buyciali.com>cialis 5 mg best price usa</a> Is Cephalexin Good For Sinus Infections Viagra Haltbarkeit

FranHof (non vérifié)   10/06/2019

Cialis 5 Mg Ficha Tecnica Propecia In Women Hair Loss <a href=http://drisdol.com>buy generic cialis online</a> When Does Cephalexin Expire

FranHof (non vérifié)   18/06/2019

Online Pharmacy Uk Tadalis Sx Soft <a href=http://cialvia.com>canadian pharmacy cialis</a> Indomethacin Online Order No Rx Usa Where To Get Flagyl In Virgin Islands

KelBync (non vérifié)   30/06/2019

Amoxicillin Burbon Cialis Livraison 24h Viagra Foto Divertenti <a href=http://leviprices.com>length of levitra patent</a> Viagra order a prepaid visa Cialis O Viagra Stendra 50mg Erectile Dysfunction

FranHof (non vérifié)   04/07/2019

Fast Delivery Cialis Online Le Viagra Sans Ordonnance <a href=http://cheapciali.com>cialis 5 mg best price usa</a> Can I Drink Alcohol On Amoxicillin Propecia Generic Version

KelBync (non vérifié)   14/07/2019

Viagra Pressione <a href=http://buyonlinecial.com>cialis generic</a> Viagra Per Gli Anziani

Laisser un message

Texte brut

  • Aucune balise HTML autorisée.
  • Les lignes et les paragraphes vont à la ligne automatiquement.
  • Les adresses de pages web et les adresses courriel se transforment en liens automatiquement.
CAPTCHA Cette question consiste à tester si vous êtes ou non un visiteur humain et à éviter les spam.