Önbellekleme

Her seferinde aynı içeriğe sahip olan sayfalarınızı önbellekleyerek hem veritabanınıza olan bağlantıları azaltır, hemde sayfaları daha hızlı yüklersiniz.

Cache çalışma mantığı php sayfalarınızı html olarak saklayıp, sonraki seferde html olarak görüntülemesidir.

<?php
header('Content-Type: text/html; charset=utf-8');
class onbellek{//PHPSTATE ÖNBELLEK SINIFI
	public $zamanasimi=300;
	var $sorgu;
	var $dosya;
	var $soket;
	var $baslangic;
	var $bitis;
	function mikrosure(){
		list($usure, $sure) = explode(" ",microtime()); 
		return ((float)$usure + (float)$sure);
	}
	function kontrol(){
		$this->baslangic=0;
		$this->bitis=0;
		$this->baslangic=$this->mikrosure();
		if ($this->sorgu == ''){$this->soket = 1;return 1;}
		$this->dosya = $this->sorgu.'.onbellek'; 
		 if ((time()-@filemtime($this->dosya)) > $this->zamanasimi) { 
			 $this->soket = true;
			 return true;  
		 }else {      
			 $this->soket = false;         
			 return false;  
		 }
	 }
	function baslat(){
		if ($this->soket) {@ob_start();}       
	}
	function bitir(){
		if ($this->soket){
			$icerik = @ob_get_contents();
			@ob_end_clean();
			if ($f = @fopen($this->dosya, "wb")){
				@fwrite($f, $icerik);
				@fclose($f);
			}
			echo $icerik;
		}
	}
	function icerik(){
		@readfile($this->dosya);
	} 
	function bosalt(){
		@unlink($this->sorgu.'.onbellek');
		return $this->sorgu.'.onbellek';
	}
	function zaman(){
		$this->bitis=$this->mikrosure();
		if(($this->bitis - $this->baslangic) < 1){
			return (($this->bitis - $this->baslangic)*1000)." milisaniye";
		}else{
			return ($this->bitis - $this->baslangic)." saniye";
		}
	}
}


////////////////ÖRNEK////////////////////////

$onbellek = new onbellek();
$onbellek->sorgu = '100000 test';//onbellek dosya adı 

if(isset($_GET["temizle"])){//TEMİZLEME SORGUSU
	die($onbellek->bosalt().' Temizlendi <a href="?" >Normali Göster</a>');
}else{//SAYFA GÖSTERİMİ BAŞLATILIYOR
	
	if ($onbellek->kontrol()){
		echo "Önbellek Yok"."<br>";
		$onbellek->baslat();
?>
		
<?php 
//PHP SAYFA KODLARIMIZIN BAŞLANGICI/////////////////////////////////////////////////
		for ($i=1; $i<100000; $i++) {
			echo $i.'-';
		}
//PHP SAYFA KODLARIMIZIN BİTİŞİ///////////////////////////////////////////////// 
?>
		
<?php
		$onbellek->bitir();
	}else{
		echo "Önbellek Var"."<br>";
		$onbellek->icerik();
	} 
	echo '<hr /><br />'.$onbellek->sorgu.' Oluşturulma '.$onbellek->zaman().' <a href="?">Yenile</a> ya da <a href="?temizle=ok">Temizle</a>';
}
?>

 

Sizin Değerli Görüşlerinize İhtiyacımız Var.