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

Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
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

IRCForumlari.NET Reklamlar
sohbet odaları sohbet odaları Benimmekan Mobil Sohbet
Cevapla

Etiketler
class, google, pagerank, php


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

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