IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası
  vaybe sohbet

>
+
Etiketlenen Kullanıcılar

 
 
LinkBack Seçenekler Arama Stil
Prev önceki Mesaj   sonraki Mesaj Next
Alt 08 Ekim 2014, 08:18   #1
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
php google pagerank class




PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
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.
*
* [MENTION=81769]para[/MENTION]m $url The URL to retrieve
* [MENTION=81769]para[/MENTION]m $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([
MENTION=37436]file[/MENTION]_exists($cacheFile))
{
$refresh = (time() - $cacheTime > [MENTION=37436]file[/MENTION]mtime($cacheFile)) ;
}
[
MENTION=15783]cLear[/MENTION]statcache();

// Cache file if needed
if($refresh
{
try
{
$tries 0;
$errors 0;
$contents false;
while(
$tries<3)
{
$tries++;
if(!
$contents)
{
$contents = [MENTION=37436]file[/MENTION]_get_contents($url);
}
if(!
$contents)
{
$error $error .(' GET_FAIL ');
}
else
{
$result = [MENTION=37436]file[/MENTION]_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.
*
* [MENTION=81769]para[/MENTION]m $url The URL to retrieve
* [MENTION=81769]para[/MENTION]m $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([
MENTION=37436]file[/MENTION]_exists($cacheFile))
{
[
MENTION=55533]UnL[/MENTION]ink($cacheFile);
}
}
}

?>


cacher.class.php


<?php


require_once('cacher.class.php');


class 
GooglePageRank 
{
var 
$site;
var 
$pagerank;

/**
* Constructor.
*
* [MENTION=81769]para[/MENTION]m url The site URL to check for PageRank
* [MENTION=81769]para[/MENTION]m 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 "
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">{
$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("
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
type="text/javascript" src="https://code.jquery.com/jquery-1.12.0.min.js">

__________________
Bu kez pek bir afili yalnızlık, ağlatan bir kadın kadar düşman. Ağzı bozuk üstelik bırakmıyor acıtmadan.
 
Alıntı ile Cevapla

 

Etiketler
class, google, pagerank, php


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Google Pagerank™ (Pr) Değişiklikleri... Tövbe]{aR Google Seo 1 10 Kasım 2012 21:00
Google ve Pagerank Güncellemeleri aLKoLiK Google Seo 10 14 Temmuz 2008 22:17
GoogLe & Pagerank t0praK Google Seo 1 12 Ağustos 2007 12:33