05 Mart 2009 Perşembe

php de resim ile pagerank gösterme

      Pagerank ölçen sitelerdeki resimler hoşuma gitmiyordu, yani benim blogumun temasına uyum sağlamıyordu. Bende kendi pagerank gösteren kodumu kendim yazarım dedim. Öncelikle pagerankın üzerinde gösterileceği bir png formatında resime ihtiyacımız var. Ben şunu yaptım kendim için.



şimdi kodlarımıza geçelim.

fontun rengini rgb formatında girmeniz gerek, daha önce hex kodlarını nasıl rgb formatına çevirebiliriz anlatmıştım.

<?php 
$domain=$_GET['domain'];
if(!$domain){$domain="h4ckinger.org";}
$domain=str_replace("http://","",$domain);

header("Content-type: image/png"); 
$dosya = "buton.png"; // png dosyası olması gerek 
$resim    = imagecreatefrompng("$dosya");
$yazirenk = imagecolorallocate($resim, 153, 170, 51); # metnin rengini ayarlıyoruz, rgb formatında
$zort=trim(prkac($domain));
$px    = (imagesx($resim) - 3.5 * strlen($zort)) / 2; 
imagestring($resim, 8, $px, 10, $zort, $yazirenk); 
imagepng($resim); 
imagedestroy($resim); 


function prkac($url){
$ch = "6" . GoogleCH(strord("info:" . $url)); 
$out = "http://www.google.com/search?client=navclient-auto&ch=". $ch .  "&features=Rank&q=info:" . $url;
$bol=explode(":",baglan($out));
return $bol[2];
}

function baglan($url){
$oturum = curl_init();
curl_setopt($oturum, CURLOPT_URL, $url);
$browser = $_SERVER['HTTP_USER_AGENT'];
curl_setopt($oturum, CURLOPT_USERAGENT, $browser);
curl_setopt($oturum, CURLOPT_HEADER, 0);
curl_setopt($oturum, CURLOPT_RETURNTRANSFER, true);
$source=curl_exec($oturum);
curl_close($oturum);
return $source;
}
define('GOOGLE_MAGIC', 0xE6359A60); 
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); 
        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 = mix($a,$b,$c); 
    return $mix[2]; 
} 

function strord($string) {
    for($i=0;$i<strlen($string);$i++) { 
        $result[$i] = ord($string{$i}); 
    } 
    return $result; 
}

?>

buton.png ve php dosyamız aynı dizinde bulunmalı

1 yorum:

KinSize dedi ki...

Bırak şimdi onu bunu.
Tic Tac Toe : KinSize : 3 h4ckinger : 0
:)

Yorum Gönder

Yorumlarınızı adsız olarak yapmamanız konuya olan ilgi ve samimiyetinizi göstericektir