gpt4 book ai didi

PHP缓存页面的特定部分

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:39:33 24 4
gpt4 key购买 nike

我在一个页面上有一些部分需要大量我想缓存的资源,这里是该页面的一个示例。

[=== Some Static HTML ===]
[=== PHP Script 1 ===]
[=== Some Static HTML ===]
[=== PHP Script 2 ===]

我想将“PHP 脚本 1”放入缓存文件(例如 script1.html)并包含它而不是处理整个脚本,脚本 2 也是如此。

我遇到的问题是我可以轻松地缓存整个页面并且它可以工作,但我只想缓存特定部分(如上所述),因为用户 session 数据等某些内容需要实时。

我有这个类是为了能够停止和启动缓冲区,这样我就可以在不破坏页面其余部分的情况下提取特定部分,但是它并没有按照我的要求进行。 http://pastebin.com/Ua6DDExw

我希望能够像下面这样进行,同时它会将该部分存储在一个包含简单 php 的文件中,而不是访问数据库。

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");
?>

我无权访问内存缓存或任何其他类似内容,因为这将在共享主机上进行。

任何帮助都会很棒,谢谢

最佳答案

研究使用 ob_start()ob_flush() 它可以满足您的需求。您需要手动将其写入文件。在野外也有 cache.php 类。

http://php.net/manual/en/function.ob-start.php

<?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.

关于PHP缓存页面的特定部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9206056/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com