Đăng Nhập

Vui lòng khai báo chính xác tên truy cập và mật khẩu!

Quên mật khẩu?

    Lập trình web bằng php - Cách tạo cache

      Admin
      Admin

      Giới tính : Nam

      Đến từ : TPHCM

      Ngày Tham gia : 03/04/2011

      Tổng số bài gửi : 2292

      #1

       Mon Jun 03, 2013 1:09 am

      Lập trình web bằng php - Cách tạo cache
      Nếu bạn là một nhà quản trị lập trình web thì chắc hẳn thuật ngữ cache không có gì là mới lạ. Có cache sẽ làm cho việc tải trang web của chúng ta về được nhanh hơn. Dưới đây là một cách đơn giản nhưng lại có hiệu quả cao trong việc tạo cache cho trang web.

      Lập trình web bằng php - Cách tạo cache Tao%20cache%20trong%20l%E1%BA%ADp%20tr%C3%ACnh%20web%20php

      sơ đồ minh họa cache
      Bước 1 : Khởi tạo file top-cache.php

      Để tạo cache trong lập trình web, chúng ta cần tạo 2 file, trước tiên, Hãy tạo một file mới và đặt tên là top-cache.php sau đó copy đoạn code bên dưới bỏ vào bên trong.
      Code:

      ---------------------------------------
      PHP Code:$url = $_SERVER["SCRIPT_NAME"];
      $break = Explode('/', $url);
      $file = $break[count($break) - 1];
      $cachefile = 'cached-'.substr_replace($file ,"",-4).'.html';
      $cachetime = 18000;
      // Serve from the cache if it is younger than $cachetime
      if (file_exists($cachefile) && time() - $cachetime < filemtime($cachefile)) {
      echo "n";
      include($cachefile);
      exit;
      }
      ob_start(); // Start the output buffer
      ?>
      ----------------------------------------

      Trong đoạn code trên, 5 dòng đầu có nhiệm vụ là tạo một file mới và đặt tên theo file hiện tại. Giả sử bạn đang chạy file list.php thì file cache sẽ được tạo mới và đặt tên là cached-list.html.

      Dòng thứ 6 tạo một biến $cachetime dùng để ấn định vòng đời của cache.

      Bước 2 : Tạo file bottom-cache.php

      Bây giờ đến lượt file thứ 2, các bạn tạo file mới và đặt tên là bottom-cache.php, sau đó copy và dán đoạn code sau vào bên trong.
      Code:

      ---------------------------------------
      PHP Code:// Cache the contents to a file
      $cached = fopen($cachefile, 'w');
      fwrite($cached, ob_get_contents());
      fclose($cached);
      ob_end_flush(); // Send the output to the browser
      ?>
      ---------------------------------------

      Bước 3 : Chèn file cache vào trang của bạn.

      Bây giờ chúng ta đã có 2 file cache, việc cần làm bây giờ của các bạn lập trình web là chèn chúng vào trang php mà bạn cần tạo cache. Các bạn sẽ chèn như sau :
      Code:

      ---------------------------------------
      PHP Code:include('top-cache.php');
      // Đoạn code mà bạn vẫn thường viết sẽ nằm ở đây
      include('bottom-cache.php'); 
      ---------------------------------------

      Việc cuối cùng mà các bạn lập trình web cần làm là các bạn thử test cache trên những trang chạy chậm của các bạn thử xem sao. Các bạn sẽ thấy tốc độ trang sẽ được cải thiện đáng kể đó.

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

      Giới tính : Nam

      Đến từ : TPHCM

      Ngày Tham gia : 03/04/2011

      Tổng số bài gửi : 2292

      #2

       Mon Jun 03, 2013 1:11 am

      Tạo cache cho giúp website của bạn load nhanh hơn.

      Chèn đoạn này ở đầu file index.php
      Code:

      <?php

      include('thuvien/cache.php');

      $cache = new cache();
       if ( $cache->caching )
       {

      và chèn đoạn này ở cuối file index.php

      }
       $cache->close(); 

      Code file cache.php
      Code:

      <?php

      class cache

      {

              var $cache_dir = './cache/';

              var $cache_time = 100000;// Thời gian để tạo cache mới

              var $caching = false;

              var $file = '';

              function cache()

              {

                      $this->file = $this->cache_dir . urlencode( $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'] );

                      if ( file_exists ( $this->file ) && ( fileatime ( $this->file ) + $this->cache_time ) > time() )

                      {

                              $handle = fopen( $this->file , "r");

                              do {

                                      $data = fread($handle, 8192);

                                      if (strlen($data) == 0) {

                                              break;

                                      }

                                      echo $data;

                              } while (true);

                              fclose($handle);

                              exit();

                      }

                      else

                      {

                              $this->caching = true;

                              ob_start();

                      }

              }

       

              function close()

              {

                      if ( $this->caching )

                      {

                              $data = ob_get_clean();

                              echo $data;

                              $fp = fopen( $this->file , 'w' );

                              fwrite ( $fp , $data );

                              fclose ( $fp );

                      }

              }

      }

      ?>

      Các bạn có thể copy và lưu vào 1 thư mục nào đó

      Chú ý:

      var $cache_dir = './cache/';
      Tạo thư mục cache ngang hàng với file index.php của bạn và nhớ CMODE quyền ghi thư mục này cho nó

      Nguồn : Sưu Tâm.