форум vBSupport.ru > vBSupport.ru > Requests > Кандидатский
  • »
VBsupport перешел с домена .ORG на родной .RU Ура! Пожалуйста, обновите свои закладки - VBsupport.ru
 
 
 
 
KashinRoman
Простоузер
Default Кэширование в PHP
2

Многие задают вопросы:А что если будет большое кол-во запросов к базе данных?Хостер заблокирует меня...?
Вот небольшое решение,как избежать большое кол-во запросов к БД
Code:
class cache {
        var $cache;
        var $cacheurl;
        var $modif;
        var $its_all_cache_menu_ok;
        var $fullurl;

function CacheStart($urlglobal,$timecache,$path) {
        $this->cacheurl="cache_".md5($urlglobal);
        $this->fullurl=$path.$this->cacheurl;
        $this->modif=time()-@filemtime ($this->fullurl);
        if ($this->modif<$timecache){
                include ($this->fullurl);
                $this->its_all_cache_menu_ok=1;
        }
}     

function CacheInit() {
        ob_start();
}

function CacheClean() {
        ob_end_clean();
}

function CacheGet () {
        $this->cache = ob_get_contents();
        return $this->cache;
}

function CacheInputAndWrite() {
        echo $this->cache;
        $fp = @fopen ($this->fullurl, "w");
        @fwrite ($fp, $this->cache);
        @fclose ($fp);
}
}
А теперь, в те места, которые требуют много ресурсов процессора для отображения, добавляем
Code:
$classcache->CacheStart($_SERVER['REQUEST_URI'], 1800, rtrim($_SERVER['DOCUMENT_ROOT'],'/')."/cache/");
if ($classcache->its_all_cache_menu_ok!=1) {
        $classcache->CacheInit();
//Здесь ваш код
        $classcache->CacheGet();
        $classcache->CacheClean();
        $classcache->CacheInputAndWrite();
}
KashinRoman добавил 23.10.2013 в 18:35
Апну темку

Last edited by KashinRoman : 10-23-2013 at 06:35 PM. Reason: Добавлено сообщение
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
 
 
mindframe
Специалист
 
mindframe's Avatar
Default
0

Лол, это конечно можно назвать кешированием, но только по сути, если подобную методику прикрутить к vB, то это будет даже печальнее, чем дефолтный датастор.
 
 
gap
Знаток
 
gap's Avatar
Default
0

Мало букв )))) По кэшу можно дофига понаписать, в инете куча статей на эту тему.

Quote:
Originally Posted by KashinRoman View Post
А теперь, в те места, которые требуют много ресурсов процессора для отображения, добавляем
Тут в начало файла куда вставляется ваш код надо добавить строку инициализации класса
PHP Code:
$classcache = new cache(); 
Да и сам класс лучше держать в отдельном файле типа class_cache.php и в основном коде вызывать с помощью require_once
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT +4. The time now is 03:17 AM.


Powered by vBulletin® Version 3.6.7
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Loading...