<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="code.xsl" ?>
<dns4.nl>
<voorbeeld>
<title>php script in een plaatje om de google page rank te tonen.</title>
<verwijzende_link>http://www.dns4.nl/pagina/php_code/google_page_rank.html</verwijzende_link>
<informatie>


</informatie>
<programma_code>
<![CDATA[
<!-- de code begint vanaf hier.

<?php
function LoadPNG($imgname){
	$url="http://google.com";
	$im = @imagecreatefrompng($imgname);
	$achtergond = imagecolorallocate($im, 0,0, 0);
	imagecolortransparent($im, $achtergrond);
	$witte = imagecolorallocate($im, 255, 255, 255);
	$groen= imagecolorallocate($im, 0, 255, 0);
	$grijs= imagecolorallocate($im, 80, 80, 80);
	class functions {
		function format_number ($number='', $divchar = ',', $divat = 3) {
			$decimals = '';
			$formatted = '';
			if (strstr($number, '.')) {
				$pieces = explode('.', $number);
				$number = $pieces[0];
				$decimals = '.' . $pieces[1];
			} else {
				$number = (string) $number;
			}
			if (strlen($number) <= $divat)
				return $number;
				$j = 0;
			for ($i = strlen($number) - 1; $i >= 0; $i--) {
				if ($j == $divat) {
					$formatted = $divchar . $formatted;
					$j = 0;
				}
				$formatted = $number[$i] . $formatted;
				$j++;
			}
			return $formatted . $decimals;
		}
	}	
	class rank extends functions {
		var $url;
		function rank ($url) {
			$this->url = $url;
			$this->url = preg_replace('/http\:\/\//si', '', $this->url);
			$this->pagerank = $this->__pagerank();
		}
		function to_int_32 (&$x) {
			$z = hexdec(80000000);
			$y = (int) $x;
			if($y ==- $z && $x <- $z){
			 $y = (int) ((-1) * $x);
			 $y = (-1) * $y;
			}
			$x = $y;
		}  
		function zero_fill ($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; $this->to_int_32($a); $a = (int)($a ^ ($this->zero_fill($c,13)));
			$b -= $c; $b -= $a; $this->to_int_32($b); $b = (int)($b ^ ($a<<8));
			$c -= $a; $c -= $b; $this->to_int_32($c); $c = (int)($c ^ ($this->zero_fill($b,13)));
			$a -= $b; $a -= $c; $this->to_int_32($a); $a = (int)($a ^ ($this->zero_fill($c,12)));
			$b -= $c; $b -= $a; $this->to_int_32($b); $b = (int)($b ^ ($a<<16));
			$c -= $a; $c -= $b; $this->to_int_32($c); $c = (int)($c ^ ($this->zero_fill($b,5)));
			$a -= $b; $a -= $c; $this->to_int_32($a); $a = (int)($a ^ ($this->zero_fill($c,3)));
			$b -= $c; $b -= $a; $this->to_int_32($b); $b = (int)($b ^ ($a<<10));
			$c -= $a; $c -= $b; $this->to_int_32($c); $c = (int)($c ^ ($this->zero_fill($b,15)));
			return array($a,$b,$c);
		}
		function checksum ($url, $length = null, $init = 0xE6359A60) {
			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);
				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);
			return $mix[2];
		}
		function strord($string) {
			for($i = 0; $i < strlen($string); $i++) {
				$result[$i] = ord($string{$i});
			}
			return $result;
		}
		function __pagerank () {
			$url = 'info:' . urldecode($this->url);
			$checksum = $this->checksum($this->strord($url));
			$url = 'http://www.google.com/search?client=navclient-auto&ch=6' . $checksum . '&features=Rank&q=' . $url;
			$v = file_get_contents($url);
			preg_match('/Rank_([0-9]+):([0-9]+):([0-9]+)/si', $v, $r);
			return ($r[3]) ? $r[3] : '0';
		}
	}
	error_reporting(E_ALL ^ E_NOTICE);
	$rank = new rank($url);
	$r = array($rank->url, $rank->pagerank);
	$desite=$r[0];
	$derang=$r[1];
	$berekengroen=((6*$derang)+10);
	imagefilledrectangle($im, 10, 17,$berekengroen, 21, $groen);
	imagefilledrectangle($im, $berekengroen, 17,70, 21, $grijs);
	imagestring($im, 5, 30, 22, $derang, $witte);
	return $im;
}
header('Content-Type: image/png');
$img = LoadPNG('google.png');
imagepng($img);
imagedestroy($img);
?>

de code is hier geeindigd.
// -->
]]>
</programma_code>
<code_link>http://www.dns4.nl/pagina/alle_tekst_files.html</code_link>
</voorbeeld>
</dns4.nl>
