## The musings of a physician who has served the community for over six decades

Related Topics

Website Development
The website technology supporting Philadelphia Reflections is PHP, MySQL and DHTML. The web hosting service is Internet Planners. The development of this website has provided an opportunity to learn new technology, to try out different techniques for getting noticed by the search engines and the trials and tribulations of dealing with malicious hackers and spammers who range from the annoying to the abusive. This collection of articles documents some of our experiences and we hope that people surfing the web looking for solutions to problems we've encountered will benefit.

George IV and Computers(1)
I got him into computers around 1960. He soon far surpassed me.

### PHP script to display Google PageRank

Like so many things on this website, the code to find the Google PageRank of the pages was lifted from someone else's work. This work is particularly praiseworthy because it worked exactly as described the minute I got it implemented.

```
pagerank.php

<?php
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);
}

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; \$b = \$mix; \$c = \$mix;
\$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;
}

//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){

\$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 .= "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);
}
}

//
// If you make your own make sure to call them pr0.gif, pr1.gif, pr2.gif etc.
//

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;
}
}
?>

Usage

Do following:

1. Save the code above as pagerank.php.
3. Create a directory "images" containing all page rank images.
4. See code below on how to use the class.

<?php
include("pagerank.php");
\$gpr = new pageRank();
\$gpr->printrank("http://www.yahoo.com");
//display image
echo \$gpr->get_pr();
?>

```

(my thanks to http://centricle.com/tools/html-entities/ for HTML encoding)

The stories are incredibly well written and set a gold standard for what could be a narrative sermon. ,
 Posted by: Faggot54   |   Oct 22, 2009 2:34 AM
Fortunately, in the last generation their credibility has declined sharply in American philosophy. ,
 Posted by: Maxx26   |   Oct 10, 2009 12:01 PM

## Please Let Us Know What You Think

 Name or nickname Email Comment (HTML tags provide better formatting)