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>';
}
?>