Site icon Init HTML

Tạo cache cho trang web bằng PHP

Web server

Tạo cache

Để thực hiện, các bạn đặt đoạn mã sau vào đầu của website.

<?php
    $cache_ext      = '.html';
    $cache_time     = 43200;
    $cache_folder   = 'cache/';
    $ignore_pages   = array('', '');
    $dynamic_url    = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] . $_SERVER['QUERY_STRING'];
    $cache_file     = $cache_folder . md5($dynamic_url) . $cache_ext;
    $ignore         = (in_array($dynamic_url, $ignore_pages)) ? true : false;
    if (!$ignore && file_exists($cache_file) && time() - $cache_time < filemtime($cache_file)) {
        ob_start('ob_gzhandler');
        readfile($cache_file);
        echo '<!-- Cached page - ' . date('l jS \of F Y h:i:s A', filemtime($cache_file)) . ', Page: ' . $dynamic_url . ' -->';
        ob_end_flush();
        exit();
    }
    ob_start('ob_gzhandler');
?>

Tiếp đến, đặt đoạn mã sau vào cuối trang web.

<?php
    if (!is_dir($cache_folder)) {
        mkdir($cache_folder);
    }
    if(!$ignore){
        $fp = fopen($cache_file, 'w');
        fwrite($fp, ob_get_contents());
        fclose($fp);
    }
    ob_end_flush();
?>

Tùy chỉnh

Bạn có thể tùy chỉnh thời gian cache tồn tại bằng cách thay đổi biến $cache_time = 43200;. Thời gian tính bằng giây. Để tạo lại cache, các bạn vào thư mục cache và xóa tập tin được tạo ra.

Chúc các bạn thành công!

Exit mobile version