PHP缓存页面的特定部分
我想缓存页面上需要大量资源的部分,下面是该页面的一个示例PHP缓存页面的特定部分,php,caching,Php,Caching,我想缓存页面上需要大量资源的部分,下面是该页面的一个示例 [=== Some Static HTML ===] [=== PHP Script 1 ===] [=== Some Static HTML ===] [=== PHP Script 2 ===] 我想将“PHP脚本1”放入一个缓存文件,例如script1.html,并将其包括在内,而不是处理整个脚本,脚本2也是如此 我的问题是,我可以很容易地缓存整个页面,它可以工作,但我只想缓存特定的部分(如上所述),因为像用户会话数据这样的东西需
[=== Some Static HTML ===]
[=== PHP Script 1 ===]
[=== Some Static HTML ===]
[=== PHP Script 2 ===]
我想将“PHP脚本1”放入一个缓存文件,例如script1.html,并将其包括在内,而不是处理整个脚本,脚本2也是如此
我的问题是,我可以很容易地缓存整个页面,它可以工作,但我只想缓存特定的部分(如上所述),因为像用户会话数据这样的东西需要是实时的
我有一个类,它可以停止和启动缓冲区,这样我就可以在不破坏页面其余部分的情况下提取特定部分,但是它不能做我想要的。
我希望能够像下面这样做,同时它将使用一个简单的php inlcude将节存储在一个文件中,而不是访问数据库
HTML Content
<?php
$cache->start_buffer("cache_name");
// PHP Script
$cache->end_buffer("cache_name");
?>
HTML Content
<?php
$cache->start_buffer("cache_name");
// PHP Script
$cache->end_buffer("cache_name");
?>
HTML内容
HTML内容
我无法访问memcache或其他类似的东西,因为这将在共享主机上进行
任何帮助都会很好,
谢谢研究一下如何使用
ob\u start()
和ob\u flush()
它完成了您想要做的事情。您需要手动将其写入文件。在野外也有cache.php类
谢谢,我会做更多的研究。我很难理解所有不同的缓冲函数。试试这个教程,它会准确地解释你想要做什么。只有当我试图缓存整个页面时,tut/脚本才会起作用。请重新阅读我的问题。检查我放在那里的代码,我不是说它的语法正确,因为它是匆忙的,但你应该得到的想法。
<?php
$cache_time = 3600; // Time in seconds to keep a page cached
$cache_folder = '/cache'; // Folder to store cached files (no trailing slash)
// Think outside the box the original said to use the URI instead use something else.
$cache_filename = $cache_folder.md5(",MyUniqueStringForMyCode"); // Location to lookup or store cached file
//Check to see if this file has already been cached
// If it has get and store the file creation time
$cache_created = (file_exists($cache_file_name)) ? filemtime($this->filename) : 0;
if ((time() - $cache_created) < $cache_time) {
$storedData = readCacheFile($cache_filename);
}
else
{
// Alternatively you can ignore the ob_start/get_contents/end_flush code
// and just call a function and store it directly to the variable.
// Start saving stuff
ob_start();
/** do your work here echoing data to the screen */
$storedData = ob_get_contents();
ob_end_flush();
// create the cachefile for the data.
createCacheFile($cache_filename);
}
// Do stuff with $storedData.