PHP question
I am trying to get this to work. I have this script... Don't look through it, scroll down to the bottom.
<?php
function google_pagerank($url) {
/*
This code is released unto the public domain
Raistlin Majere <a href="mailto:[email protected]" class="bb-email">[email protected]</a>
*/
define('GOOGLE_MAGIC', 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 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 = 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+=($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]);
/* 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 get_pr($url) {
$result=array(\"\",-1);
if (($url.\"\"!=\"\")&&($url.\"\"!=\"http://\")):
// check for protocol
if (substr(strtolower($url),0,7)!=\"http://\"):
$url=\"http://\".$url;
endif;
$url=\"info:\".$url;
$checksum=GoogleCH(strord($url));
$google_url=sprintf(\"http://www.google.com/search?client=navclient-auto&ch=6%u&features=Rank&q=\".$url,$checksum); // url to get from google
$contents=\"\";
// let's get ranking
// this way could cause problems because the Browser Useragent is not set...
if ($handle=fopen($google_url,\"rb\")):
while(true):
$data=fread($handle,8192);
if (strlen($data)==0):
break;
endif;
$contents.=$data;
endwhile;
fclose($handle);
else:
$contents=\"Connection unavailable\";
endif;
$result[0]=$contents;
// Rank_1:1:0 = 0
// Rank_1:1:5 = 5
// Rank_1:1:9 = 9
// Rank_1:2:10 = 10 etc
$p=explode(\":\",$contents);
if (isset($p[2])):
$result[1]=$p[2];
endif;
endif;
return $result;
}
$pr = get_pr($url);
if($pr[1] == -1)
$pr[1] = 0;
return $pr[1];
} // end google_pagerank()
?>
What it does is display pagerank. Now to see the pagerank I use this code
<?php
echo google_pagerank('http://www.nutang.com'); // output: 5
?>
What if the main part of the code is at example.com but I am displaying the short part of the code at example2.com do I do something like
<?php
echo www.example2.com_google_pagerank('http://www.nutang.com'); // output: 5
?>
I have no idea if it's possible to host php scripts on different domains and then call for them.
Renegade posted this at 01:54 — 11th September 2005.
He has: 3,022 posts
Joined: Oct 2002
Yes, it's possible to host PHP scripts on other domains/servers and call them, just use the include function:
<?php
include("http://www.example-domain.com/script.php");
?>
Busy posted this at 11:10 — 11th September 2005.
He has: 6,151 posts
Joined: May 2001
Not sure if you will be able to do it with PHP5 and may also have to remember about safe mode - on or off ...
teammatt3 posted this at 15:54 — 11th September 2005.
He has: 2,102 posts
Joined: Sep 2003
Well, for some reason, the script works on my computer (I have PHP on it) but it doesn't work on the web.
JeevesBond posted this at 16:07 — 11th September 2005.
He has: 3,956 posts
Joined: Jun 2002
phpinfo(); then, check the configurations are the same? Also have you tried Renegades method. It's a little different to yours (although that shouldn't really make any difference you never know...)
And what happens when you try running it on the web? What error pops out?
a Padded Cell our articles site!
teammatt3 posted this at 16:21 — 11th September 2005.
He has: 2,102 posts
Joined: Sep 2003
See for yourself http://koopy.org/pagerank.php
<?php
// let's get ranking
// this way could cause problems because the Browser Useragent is not set...
(line 108) if ($handle=fopen($google_url,\"rb\")):
(line 109) while(true):
(line 110) $data=fread($handle,8192);
?>
Want to join the discussion? Create an account or log in if you already have one. Joining is fast, free and painless! We’ll even whisk you back here when you’ve finished.