Konular
Link Değişimi
Php
Mysql
Html
Javascript
Windows Vista
Program Anlatımı
Internet
Google
Windows 2003 Server
Komikler
Windows Xp
Isa Server
Network
Ofis Programları
Css
Photoshop
Donanım
Joomla
Youtube Video
Diğer Konular
Jquery

Linklerimiz
Eskişehir Öğrenci Yurdu
Turkey Gulet
Luxurious Gulet
Otel Şikayet
4 Yıldız Ekonomik Oteller
Limak Limra Hotel
Yat Kiralama Fiyatları
Datca Bodrum Ferryboats
Gulet List For Sale
Otel telefonları
Otel Video
Otel Dizin
Otel Directory
Otel Resimleri
Otel Maps
Boutique Gulets

 
php php google pagerank class
cacher.class.php

<?php

class Cacher
{
var $cachedir = CACHE_DIR;
var $suffix;

/**
* Constructor. Requires CACHE_DIR directive to be set
* prior to use. CACHE_DIR will contain cache files
* which hold the contents of requested URLs.
*/
function Cacher($suffix='')
{
if(!(CACHE_DIR))
{
die('CACHE_DIR not configured.');
}
$this->suffix = $suffix;
}

/**
* Fetch a URL. If it has already
* been cached within the specified cacheTime,
* the cached copy is returned. Otherwise a
* fresh copy is retrieved and cached.
*
* If it can't write to the cache for some reason, the original URL
* is returned.
*
* @param $url The URL to retrieve
* @param $cacheTime The length of time to cache the requested URL.
*/
function fetch($url, $cacheTime=86600)
{
// Determine cache file name
$cacheFile = $this->cachedir . md5($url) . $this->suffix . '.cache' ;
$refresh = true;
if(@file_exists($cacheFile))
{
$refresh = (time() - $cacheTime > @filemtime($cacheFile)) ;
}
@clearstatcache();

// Cache file if needed
if($refresh)
{
try
{
$tries = 0;
$errors = 0;
$contents = false;
while($tries<3)
{
$tries++;
if(!$contents)
{
$contents = @file_get_contents($url);
}
if(!$contents)
{
$error = $error .(' GET_FAIL ');
}
else
{
$result = @file_put_contents($cacheFile, $contents);
if(!$result)
{
$error = $error .(' PUT_FAIL ');
}
else
{
return $cacheFile;
}
}
// TODO: Is this necessary? Is there a better way?
usleep(10000);
}
error_log("\n" . date('r') . " - Failed to cache: {$url}", 3, 'error_log');
error_log("\n" . date('r') . " - Failure reasons: {$error}", 3, 'error_log');
return false;
}
catch(Exception $e)
{
error_log("\n" . date('r') . " - {$e}", 3, 'error_log');
error_log("\n" . date('r') . " - Cacher error: {$error}", 3, 'error_log');
return false;
}

}
return $cacheFile;
}

/**
* Fetch a URL and return contents as a string. If it has already
* been cached within the specified cacheTime,
* the cached copy is returned. Otherwise a
* fresh copy is retrieved and cached.
*
* @param $url The URL to retrieve
* @param $cacheTime The length of time to cache the requested URL.
*/
function fetchContents($url, $cacheTime=86600)
{
$file = $this->fetch($url, $cacheTime);
if(!$file) return false;
return file_get_contents($file);
}

/**
* Clear cache files for a url.
*/
function clear($url)
{
// Determine cache file name
$cacheFile = $this->cachedir . md5($url) . $this->suffix . '.cache' ;
if(@file_exists($cacheFile))
{
@unlink($cacheFile);
}
}
}

?>


cacher.class.php


<?php


require_once('cacher.class.php');


class GooglePageRank
{
var $site;
var $pagerank;

/**
* Constructor.
*
* @param url The site URL to check for PageRank
* @param cacheTime (Optional) Length of time in seconds to cache results.
*/
function GooglePageRank($site, $cacheTime=86400)
{
$this->site = $site;
if(count($site)==0) die('Google needs a site URL to check pagerank.');

// Calculated variables
$info = 'info:' . urldecode($site);
$checksum = $this->checksum($this->strord($info));
$url = "http://www.google.com/search?client=navclient-auto&ch=6{$checksum}&features=Rank&q={$info}";

// Pull pagerank through cache
$cacher = new Cacher('_google');
$result = $cacher->fetchContents($url, $cacheTime);

// Parse results
$this->raw = trim($result);
preg_match('/Rank_[0-9]:[0-9]:(.*)/', $result, $r);
if(!isset($r[1]))
{
trigger_error("Couldn't get Pagerank for {$site}. Got: [{$result}]", E_USER_NOTICE);
error_log("\n" . date('r') . "Couldn't get Pagerank for {$site}", 3, 'error_log');
$this->pagerank = 0;
}
else
{
$this->pagerank =(isset($r[1])) ? $r[1] : 'Error';
}
}

/**
* Converts number to int 32
* (Required for pagerank hash)
*/
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;
}

/**
* Fills in zeros on a number
* (Required for pagerank hash)
*/
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;
}

/**
* Pagerank hash prerequisites
*/
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);
}

/**
* Pagerank checksum hash emulator
*/
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];
}

/**
* ASCII conversion of a string
*/
function strord($string) {
for($i = 0; $i < strlen($string); $i++) {
$result[$i] = ord($string{$i});
}
return $result;
}

/**
* Number formatting for use with pagerank hash
*/
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;
}

}
?>

Uygulama

require_once("google_pagerank.class.php");

$rankObject = new GooglePageRank("http://www.someDomain.com");

$pageRank = $rankObject->pagerank;

echo $pageRank;

//yada

$rankObject = new GooglePageRank("http://www.someDomain.com", 21600);

//parameter for 21600 seconds (6 * 60 * 60):
Böyyük Patron Tarafından 21-07-2010 Tarihinde Gönderilmiştir.   Bu Konuyu Yazdır
Kaynak : 

 

En Son Eklenenler
İnternet
card recovery
php
ip adresi kontrolü ip validate
php
url adresi kontrolü validate url
php
php mail adresi kontrolü filter_var
php
dosya include error hatasını engellemek
jquery
internet explorer position fixed sorununu jquery ile çözmek
jquery
input alanlara girilen sayıların toplanarak gösterilmesi
MYSQL
aynı satırdaki (row) field değerlerin içinde en büyüğünü (max) bulmak
MYSQL
aynı satırdaki (row) field değerlerin içinde en küçüğünü (min) bulmak
jquery
select kutusunda seçilen option daki attribute özelliğindeki değeri almak
jquery
jquery dizide max ve min işlemeleri array max min
MYSQL
mysql de türkçe kayıtlı alanlarda arama yapmak
php
str_shuffle()
php
sql_regcase()
php
mysql_affected_rows()
php
php Chop
php
php pathinfo
MYSQL
Mysql de trigger
php
eposta adresine ait mx kaydının olup olmadığını kontrol etmek
php
Türkçe karakter destekli array sort
Javascript
Diziler ve Türkçe Karakterleri Sıralama
php
php curl türkçe karakter sorunu çözülmüştür
jquery
jquery mouse sağ tuşu kilitlemek
jquery
jquery tagların value değerini öğrenmek
jquery
jquery multiple selector çoklu element seçimi
jquery
jquery zebra tablolar yapmak iki renkli tablo yapımı
jquery
jquery sayfayı refresh etmek sayfayı yenilemek
jquery
jquery resim yüklenemiyorsa farklı resim göstermek
php
tckimlik sorgulama
php
php ile javascript ve style (css) dosyalarını browsere sıkıştırarak göndermek
php
curl ile twitpic.com sitesine resim upload etmek
php
stringde aradağımız stringin posizyonunu bulmak tripos()
php
stringdeki karakekterlerden rastgele yeni karakter türetmek str_shuffle()
php
addcslashes()
php
sabitleri yoketmek defined()
php
php kodlarını renkli göstermenin basit yolu show_source()
php
glob ile dosya listelemek
php
iki ayrı dizide değeri aynı olanlardan yeni bir dizi yapmak array_intersect()
php
dizi key ile değerini yer değiştirmek array_flip()
php
dizilere filtre uygulamak array filter
İletişim : bpatron@codekodu.com
776122Kişi Tarafından Sitemiz Ziyaret Edilmiştir. 21 Kişi Online
Bugün 14 Saat 53 Dakikada Sitemizi Tekil 422 Kişi Ziyaret Etmiştir.
Dün Sitemizi Tekil 779 Kişi Ziyaret Etmiştir.
Sitemizi En Çok Tekil 12-12-2011 Tarihinde 857 Kişi Ziyaret Etmiştir.
Sitemizdeki bilgilerin büyük çoğunluğu alıntıdır.İlgili yazının yazarının veya kaynak sahibinin istemesi halinde ilgili yazı sitemizden kaldırılacaktır.
Sitemizin İmalatı Böyyükpatron Tarafından Yapılmıştır.