Bạn thực sự có thể lưu đầu ra của trang trước khi bạn kết thúc tập lệnh, sau đó tải bộ nhớ cache vào đầu tập lệnh.
mã ví dụ:
<?php
$cachefile = 'cache/'.basename($_SERVER['PHP_SELF']).'.cache'; // e.g. cache/index.php.cache
$cachetime = 3600; // time to cache in seconds
if(file_exists($cachefile) && time()-$cachetime <= filemtime($cachefile)){
$c = @file_get_contents($cf);
echo $c;
exit;
}else{
unlink($cachefile);
}
ob_start();
// all the coding goes here
$c = ob_get_contents();
file_put_contents($cachefile);
?>
Nếu bạn có nhiều trang cần bộ nhớ đệm này bạn có thể làm điều này:
trong cachestart.php
:
<?php
$cachefile = 'cache/'.basename($_SERVER['PHP_SELF']).'.cache'; // e.g. cache/index.php.cache
$cachetime = 3600; // time to cache in seconds
if(file_exists($cachefile) && time()-$cachetime <= filemtime($cachefile)){
$c = @file_get_contents($cf);
echo $c;
exit;
}else{
unlink($cachefile);
}
ob_start();
?>
trong cacheend.php
:
<?php
$c = ob_get_contents();
file_put_contents($cachefile);
?>
Sau đó, chỉ cần thêm
khi bắt đầu tập lệnh. và thêm
include('cacheend.php');
ở cuối tập lệnh. Hãy nhớ có một thư mục có tên là bộ nhớ cache và cho phép PHP truy cập vào thư mục đó. Ngoài ra, hãy nhớ rằng nếu bạn đang thực hiện bộ nhớ cache trang đầy đủ, trang của bạn không được hiển thị SESSION cụ thể (ví dụ: thanh hiển thị thành viên hoặc gì) vì chúng cũng sẽ được lưu trong bộ nhớ cache. Nhìn vào một khuôn khổ cho bộ nhớ đệm cụ thể (biến hoặc một phần của trang).
Bạn có đang sử dụng bất kỳ khung công tác nào như Zend Framework không? Hãy cho chúng tôi biết thêm chi tiết! – Thomaschaaf
Tôi không sử dụng bất kỳ khung công tác nào. – user187580
bạn có thể muốn xem xét chuyển nó sang một khung công tác. http://code.google.com/p/samstyle-php-framework - khung công tác chính thức bao gồm bộ nhớ đệm của tệp và hỗ trợ memcache – mauris