Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Как очистить кеш по времени в сторонем модуле?

Как очистить кеш по времени в сторонем модуле?


     13.11.2015    Все вопросы » Общие вопросы по PHP    1782

вопрос
Здравствуйте, подскажите пожалуйста! Как сделать очистку кеша, конкретно в модуле по времени, не зависимо от настроек движка?

Мне нужно что бы кеш чистился к примеру: каждые 3 часа!

$moduleName = dle_cache('cachename_', $config['skin'], true);
if( !$moduleName) {


///////////////// КОД МОДУЛЯ /////////////////////


create_cache('cachename_', $moduleName, $config['skin'], true );
}
echo $moduleName;

Ответил: PunPun


В самый конец файла ( перед
?>
) вставьте
function get_cache($name, $id)
{
    global $config, $is_logged, $member_id;
    if( $is_logged ) $end_file = $member_id['user_group'];
    else $end_file = "0";
    $id = md5( $id );
    $name = $name . "_" . $id . "_" . $end_file;

    $buffer = @file_get_contents( ENGINE_DIR . "/cache/" . $name . ".tmp" );

    if ( $buffer !== false )
    {
        $file_date = @filemtime( ENGINE_DIR . "/cache/" . $name . ".tmp" );
        $file_date = time()-$file_date;
        if ( $file_date > ( 180 * 60 ) )
        {
            $buffer = false;
            @unlink( ENGINE_DIR . "/cache/" . $name . ".tmp" );
        }

        return $buffer;
    }
    else
        return $buffer;
}
Потом замените это
dle_cache('cachename_', $config['skin'], true);
на это
get_cache( "cachename_", $config['skin']);

3 комментария

LazyDev
PHP-developer

LazyDev - 14 ноября 2015 00:24 -

***Комментарий удален***

Мой блог: LazyDev.pro

Помогаю с решением проблем на платной основе.

kolumb
Юзер

kolumb - 14 ноября 2015 01:23 -

Спасибо, работает!

gor.nizon
Юзер

gor.nizon - 21 ноября 2015 10:58 -

Не выдумывайте велосипеды!
$dle_api->load_from_cache ( string $fname,  [, int $timeout [, string $type]]);
Чтение данных из файла кеша. Параметр $fname указывает имя файла кеша без указания его расширения. Необязательный параметр $timeout указывает количество секунд, в течении которых информацию из кеша считать актуальной. Если файл кеша будет устаревшим, то функция возвращает false.   Необязательный параметр $type указывает на тип данных который хранится в кеше,  если не 'text' - считаем, что хранился массив и возвращается массив данных.

Просто когда из кеша загружаетет, установите какое время считать инфу верной

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх