кэширование страниц с использованием php - PullRequest
6 голосов
/ 02 марта 2010

Я ищу совета от всех вас, кто может рассказать мне о кэшировании страниц для веб-сайта ... Я работаю в php, так что если кто-нибудь может объяснить мне, как выполнять кэширование в php.

Ответы [ 3 ]

7 голосов
/ 02 марта 2010

PHP предлагает чрезвычайно простое решение для динамического кэширования в форме буферизации вывода. Главная страница сайта (которая генерирует наибольший трафик) теперь обслуживается из кэшированной копии, если она была кэширована в течение последних 5 минут.

<?php

  $cachefile = "cache/".$reqfilename.".html";
  $cachetime = 5 * 60; // 5 minutes

  // Serve from the cache if it is younger than $cachetime
  if (file_exists($cachefile) && (time() - $cachetime
     < filemtime($cachefile))) 
  {
     include($cachefile);
     echo "<!-- Cached ".date('jS F Y H:i', filemtime($cachefile))." 
     -->n";
     exit;
  }
  ob_start(); // start the output buffer
?>

.. Your usual PHP script and HTML here ...

<?php
   // open the cache file for writing
   $fp = fopen($cachefile, 'w'); 

   // save the contents of output buffer to the file
    fwrite($fp, ob_get_contents());

    // close the file

    fclose($fp); 

    // Send the output to the browser
    ob_end_flush(); 
?>

Это простой тип кэша,

Вы можете увидеть это здесь

http://www.theukwebdesigncompany.com/articles/php-caching.php

Вы можете использовать Smarty с техникой кеширования

http://www.nusphere.com/php/templates_smarty_caching.htm

1 голос
/ 02 марта 2010

Я довольно удивлен, что ни один из ответов до сих пор, похоже, не рассматривал возможность кэширования где-либо ДРУГОЕ , чем на сервере, где работает PHP.

В HTTP имеется множество функций, позволяющих прокси и браузерам повторно использовать ранее предоставленный контент, не обращаясь к источнику. Настолько, что я даже не попытался бы ответить на это в S.O. Ответить.

См. учебник для хорошего введения в тему.

C.

0 голосов
/ 02 марта 2010

Вот вам полезная ссылка, касающаяся основ кэширования и того, как применить это с php.

http://www.devshed.com/c/a/PHP/Output-Caching-with-PHP/

Имейте в виду, что в большинстве случаев правильное кэширование должно применяться раньше (иначе запрос даже не достигает сценария php).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...