Sürekli güncellenmesi gerekmeyen,
fazla hiti olduğu için kaynak kullanımı sorunları olan site/scriptlerinizde kullanmanız için kullanımı kolay cache sistemi.
cache.php
Salt Metin
PHP:
1.
<?php
2.
//————————————-
3.
//—- CACHE MOD v0.4 by xam
4.
// forum.ceviz.net
5.
//————————————-
6.
function cache_check ($file = ‘cachefile’) {
7.
global $cache,$rootpath,$cachesystem,$cacheident;
8.
if ($cachesystem == ‘yes’) {
9.
$cachefile = $rootpath.$cache . ‘/’.$file.’-’.$cacheident.’.html’;
10.
$cachetime = 120 * 60; // 2 Hours
11.
$updatetime = $cachetime / 60 / 60;
12.
if (file_exists($cachefile) && (TIMENOW - $cachetime <filemtime($cachefile)))
13.
{
14.
include_once($cachefile);
15.
print("<p align=center><font class=small color=red><b>This content was last cached on ".date(’Y-m-d H:i:s’, filemtime($cachefile))." and updating every ".$updatetime." hours.</b></font></p>");
16.
exit;
17.
}
18.
ob_start();
19.
}else
20.
return;
21.
}
22.
23.
function cache_save ($file = ‘cachefile’) {
24.
global $cache,$rootpath,$cachesystem,$cacheident;
25.
if ($cachesystem == ‘yes’) {
26.
$cachefile = $rootpath.$cache . ‘/’.$file.’-’.$cacheident.’.html’;
27.
$fp = fopen($cachefile, ‘w’);
28.
fwrite($fp, ob_get_contents());
29.
fclose($fp);
30.
ob_end_flush();
31.
}else
32.
return;
33.
}
34.
//————————————-
35.
//—- CACHE MOD Extension by DarkElder
36.
//————————————-
37.
$cacheident = ($_SERVER['QUERY_STRING'] != ” ? md5($_SERVER['QUERY_STRING']) : ‘noGet’);
38.
//————————————-
39.
//—- CACHE MOD v0.4 by xam
40.
//————————————-
41.
?>
Genel bir ayar dosyanız varsa içine eklemeniz gereken AYAR kodları:
Salt Metin
PHP:
1.
$cachesystem = ‘yes’; // evet-hayır
2.
$rootpath=’./’; // kök dizin
3.
$cache = ‘cache’; // dosyaların cacheleneceği klasör
Ayrıca,
cache yapma, güncelleme ve kontrol süresi
Salt Metin
PHP:
1.
$cachetime = 120 * 60; // 2 Hours
Kullanımı
örnek dosyamız olan,
ayarladığımız dizine /cache/ klasörünü açar "777" izin veririz.(yazılabilir)
/ayrintilar.php?id=32423
32423 nolu idye sahip içeriğimizi ekrana basar, her seferinde sql den bu veriyi çeker.
ayrintilar.php sayfasında sql sorgusundan önce, cache.php ve ayar.php yi include eder ve peşinden
Salt Metin
PHP:
1.
cache_check(’ayrintilar’);
kodunu ekler, içerik ve php kodlarından sonra, sayfamızı bitirirken
Salt Metin
PHP:
1.
cache_save(’ayrintilar’);
kodunu ekleriz.
script,
ayrintilar.php ye id=32423 şeklinde gelen ilk istekte içeriği alır,
cache klasörümüzün içine ayrintilar45as5×543md5-id-degeri32432asd3.html şeklinde bir dosyaya yazar, tekrar gelen 32423 isteğinde sql yerine yukarıdaki dosyayı gösterir, her sayfa için ayrı bir dosya üretir, bir id ye bir dosya üretip güncelleme süresi gelmeden, veya dosya silinmeden tekrarlamaz.
ayırdedebilmek için,
ayrintilar.php için ;
Salt Metin
PHP:
1.
cache_check(’ayrintilar’);
2.
cache_save(’ayrintilar’);
goster.php için ;
Salt Metin
PHP:
1.
cache_check(’goster’);
2.
cache_save(’goster’);
gibi kullanabilirsiniz.
Sitesinde, kaynak kullanımı sorunu olan kişiler için bulunmaz ilaçtır.
Bu yazı ceviz.net’ten alınmıştır.
Burada Havadan Sudan Bahsedip yormadim sizi zmler ve sonular var