par
bg62 » 12 mai 2008, 16:59
bonjour, j'ai dans un script un fichier pr.php qui fonctionnait quasiment à merveille jusqu'à présent, mais le bug est arrivé brutalement ... et plus rien ne tourne !!! J'ai pensé au serveur, mais il ne semble pas que ce soit cela, plutôt une sorte de requète rejetée par google ....
Si quelqu'un pouvait m'en actualiser le codage ce serait super !!!! :
Code : Tout sélectionner
<?php
define('GMAG', 0xE6359A60);
//unsigned shift right
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 ^= (zeroFill($c,13));
$b -= $c; $b -= $a; $b ^= ($a<<8);
$c -= $a; $c -= $b; $c ^= (zeroFill($b,13));
$a -= $b; $a -= $c; $a ^= (zeroFill($c,12));
$b -= $c; $b -= $a; $b ^= ($a<<16);
$c -= $a; $c -= $b; $c ^= (zeroFill($b,5));
$a -= $b; $a -= $c; $a ^= (zeroFill($c,3));
$b -= $c; $b -= $a; $b ^= ($a<<10);
$c -= $a; $c -= $b; $c ^= (zeroFill($b,15));
return array($a,$b,$c);
}
function GCH($adress, $length=null, $init=GMAG) {
if(is_null($length)) {
$length = sizeof($adress);
}
$a = $b = 0x9E3779B9;
$c = $init;
$k = 0;
$len = $length;
while($len >= 12) {
$a += ($adress[$k+0] +($adress[$k+1]<<8) +($adress[$k+2]<<16)
+($adress[$k+3]<<24));
$b += ($adress[$k+4] +($adress[$k+5]<<8) +($adress[$k+6]<<16)
+($adress[$k+7]<<24));
$c += ($adress[$k+8] +($adress[$k+9]<<8)
+($adress[$k+10]<<16)+($adress[$k+11]<<24));
$mix = mix($a,$b,$c);
$a = $mix[0]; $b = $mix[1]; $c = $mix[2];
$k += 12;
$len -= 12;
}
$c += $length;
switch($len) /* all the case statements fall through */
{
case 11: $c+=($adress[$k+10]<<24);
case 10: $c+=($adress[$k+9]<<16);
case 9 : $c+=($adress[$k+8]<<8);
/* the first byte of c is reserved for the length */
case 8 : $b+=($adress[$k+7]<<24);
case 7 : $b+=($adress[$k+6]<<16);
case 6 : $b+=($adress[$k+5]<<8);
case 5 : $b+=($adress[$k+4]);
case 4 : $a+=($adress[$k+3]<<24);
case 3 : $a+=($adress[$k+2]<<16);
case 2 : $a+=($adress[$k+1]<<8);
case 1 : $a+=($adress[$k+0]);
/* case 0: nothing left to add */
}
$mix = 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 getPR($_url) {
$adress = 'info:'.$_url;
$ch = GCH(strord($adress));
$adress='info:'.urlencode($_url);
$pr =
file("http://www.google.com/search?client=navclient-auto&ch=6$ch&ie=UTF-8&oe=UTF-8&features=Rank&q=$adress");
$pr_str = implode("", $pr);
return substr($pr_str,strrpos($pr_str, ":")+1);
}
?>
grand merci à l'avance
@micalement
b g
bonjour, j'ai dans un script un fichier pr.php qui fonctionnait quasiment à merveille jusqu'à présent, mais le bug est arrivé brutalement ... et plus rien ne tourne !!! J'ai pensé au serveur, mais il ne semble pas que ce soit cela, plutôt une sorte de requète rejetée par google ....
Si quelqu'un pouvait m'en actualiser le codage ce serait super !!!! :
[code]
<?php
define('GMAG', 0xE6359A60);
//unsigned shift right
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 ^= (zeroFill($c,13));
$b -= $c; $b -= $a; $b ^= ($a<<8);
$c -= $a; $c -= $b; $c ^= (zeroFill($b,13));
$a -= $b; $a -= $c; $a ^= (zeroFill($c,12));
$b -= $c; $b -= $a; $b ^= ($a<<16);
$c -= $a; $c -= $b; $c ^= (zeroFill($b,5));
$a -= $b; $a -= $c; $a ^= (zeroFill($c,3));
$b -= $c; $b -= $a; $b ^= ($a<<10);
$c -= $a; $c -= $b; $c ^= (zeroFill($b,15));
return array($a,$b,$c);
}
function GCH($adress, $length=null, $init=GMAG) {
if(is_null($length)) {
$length = sizeof($adress);
}
$a = $b = 0x9E3779B9;
$c = $init;
$k = 0;
$len = $length;
while($len >= 12) {
$a += ($adress[$k+0] +($adress[$k+1]<<8) +($adress[$k+2]<<16)
+($adress[$k+3]<<24));
$b += ($adress[$k+4] +($adress[$k+5]<<8) +($adress[$k+6]<<16)
+($adress[$k+7]<<24));
$c += ($adress[$k+8] +($adress[$k+9]<<8)
+($adress[$k+10]<<16)+($adress[$k+11]<<24));
$mix = mix($a,$b,$c);
$a = $mix[0]; $b = $mix[1]; $c = $mix[2];
$k += 12;
$len -= 12;
}
$c += $length;
switch($len) /* all the case statements fall through */
{
case 11: $c+=($adress[$k+10]<<24);
case 10: $c+=($adress[$k+9]<<16);
case 9 : $c+=($adress[$k+8]<<8);
/* the first byte of c is reserved for the length */
case 8 : $b+=($adress[$k+7]<<24);
case 7 : $b+=($adress[$k+6]<<16);
case 6 : $b+=($adress[$k+5]<<8);
case 5 : $b+=($adress[$k+4]);
case 4 : $a+=($adress[$k+3]<<24);
case 3 : $a+=($adress[$k+2]<<16);
case 2 : $a+=($adress[$k+1]<<8);
case 1 : $a+=($adress[$k+0]);
/* case 0: nothing left to add */
}
$mix = 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 getPR($_url) {
$adress = 'info:'.$_url;
$ch = GCH(strord($adress));
$adress='info:'.urlencode($_url);
$pr =
file("http://www.google.com/search?client=navclient-auto&ch=6$ch&ie=UTF-8&oe=UTF-8&features=Rank&q=$adress");
$pr_str = implode("", $pr);
return substr($pr_str,strrpos($pr_str, ":")+1);
}
?>
[/code]
grand merci à l'avance
@micalement
b g