Cache hay còn gọi là bộ đệm là một kỹ thuật mà bất kì một nhà quản trị web nào cũng cần phải biết. Cache giúp cho trang web của bạn sẽ được tải nhanh hơn. Trong bài viết này mình sẽ chia sẻ với các bạn một cách tạo cache cho trang web của mình cực kì đơn giản nhưng lại hiệu quả rất cao.

Tạo cache cho trang web bằng PHP

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!