PHP cache

Php Logo

Daha önceleri bir kaç projem de kullandığım ve oldukça kullanışlı (cache özelliği ve hızı bakımından çok iyi) bir cache betiğini paylaşmak istedim.

Betik sayfanızı html olarak cache dizinine kayıt edip; sitenizin daha hızlı çalışması ve sunucu load seviyelerini düşürmek adına ciddi derecede iş görüyor diyebilirim..

Öncelikle wordpress ile karıştırmayın zaten wordpress üzerindeki cache işlemleri için w3total cache gibi eklentilerle kolaylıkla yapabiliyoruz. Bu normal olarak hazırladığımız sistemler için geçerli.

cache-ust.php olarak aşağıdaki kodları kayıt edin

<?php 
$filename = "%%-".md5($_SERVER['REQUEST_URI'])."-%%.html"; 
$cachefile = "cache/".$filename; 
$cachetime = 15 * 24 * 60 * 60; 
if (file_exists($cachefile)) { 
if(time() - $cachetime < filemtime($cachefile)) { 
readfile($cachefile); 
exit; 
}else { 
unlink($cachefile); 
} } 
ob_start(); 
?>

cache-alt.php olarak aşağıdaki kodları kayıt edin

<?php 
$fp = fopen($cachefile, 'w+');  
fwrite($fp, ob_get_contents());  
fclose($fp);  
ob_end_flush();  
?>

Ve ana dizinde bir cache klasörü oluşturup yazma izinlerine 777 verin.

Cache yapmak istediğiniz sayfalara ise;

En üst kısmına;

<?php include "cache-ust.php" ?>

ve en alt kısmına

<?php include "cache-alt.php" ?>

Ekleyerek kolaylıkla kullanabilirsiniz..

Güvenlik açısından;
$filename = “%%-”.md5($_SERVER[‘REQUEST_URI’]).”-%%.html”;

Adresini kendinize göre değiştirebilirsiniz. Fakat zaten md5 olarak request url üzerinden oluşturduğundan dolayı pek bir sorun yaratmayacaktır.

Yanıt Gönder