基于超简单静态文件(html)的php站点缓存

2024-04-26

我有一个网站,基本上只显示内容,没有任何表格和后期处理。 该网站基于 PHP 并托管在共享主机上。它很少改变。 我想为此网站启用缓存。 它是共享托管,所以我需要一个解决方案:

  • 不使用 Memcached
  • 不需要将我的网站移至 VPS
  • 不要使用APC或其他东西

所以基本上我想要完成的是将每个子网站缓存为 HTML 并告诉 PHP 获取当前子网站的 HTML 缓存版本 5 分钟并将其显示给用户。并在5分钟后刷新缓存。

我一直在互联网上寻找一段时间,有一些教程和框架支持这种奇怪的缓存。

但我需要的只是一个非常易于使用的好库。

我想象它以这种方式工作:

<?

if (current_site_cache_is_valid())
{
   display_cached_version();
   die;
}

..mywebsite rendering code

?>

听起来很简单,但我希望一些优秀的开发人员以前做过这种类型的库。那么您知道这样的现成可用且实施起来不太耗时的解决方案吗?


这就是我通常这样做的方式,但是我不知道你的 URL 设计,也不知道你的目录/文件布局。

I do this with .htaccess and a mod_rewrite­Docs http://httpd.apache.org/docs/current/mod/mod_rewrite.html.

网络服务器检查缓存的 HTML 文件是否存在,如果存在,则传送该文件。您还可以检查它的年龄。

If it's too old or if it does not exists your PHP script(s?) is started. At the beginning of your script you start the output buffer­Docs http://php.net/ob_start. At the end of your script, you obtain the output buffer and you place the content into the cache file and then you output it.

该解决方案的好处是,如果存在静态文件,apache 将提供静态文件,并且无需调用 PHP 进程。如果您在 PHP 本身内完成这一切,您将不会获得这种好处。

我什至会更进一步,运行一个 cron 作业来删除旧的缓存文件,而不是在内部进行时间检查.htaccess。完成后,您可以使重写变得不那么复杂,以更喜欢.php.cached文件而不是.php file.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于超简单静态文件(html)的php站点缓存 的相关文章

  • 数组到字符串转换注意事项。为什么?

    为什么我得到 Applications MAMP htdocs test2 php 第 11 行中的数组到字符串转换 注意 users array aa a b bb cc c foreach users as usr var htmlsp
  • PHP shell_exec 使用 ssh 运行 shell 脚本

    我有一个 shell 脚本 使用 ssh 和密钥连接到另一台机器 因此它不需要用户名和密码 当我从命令行运行这个脚本时 它工作正常 但是当我从 php shell exec 运行这个脚本时 它不起作用 如果我与 PHP 建立 ssh 连接并
  • 递归替换多维数组中特定键每次出现的值

    我有一个数组 其数组深度可能会有所不同 例如 array one gt array array something gt value array something2 gt value2 another gt anothervalue tw
  • 自动解析 PHP,将 PHP 代码与 HTML 分离

    我正在开发一个大型 PHP 代码库 我想将 PHP 代码与 HTML 和 JavaScript 分开 我需要对 PHP 代码进行多次自动搜索和替换 对 HTML 进行不同的搜索和替换 对 JS 进行不同的自动搜索和替换 有没有一个好的解析器
  • 使用 jquery 迭代 json 数组

    已经有一些帖子和我遇到了类似的问题 如何使用 PHP 中的 jQuery AJAX 调用迭代 JSON 数组 https stackoverflow com questions 6472338 how do i iterate over a
  • 撇号 php 问题

    我正在做一项涉及喊话箱的学校作业 一个很棒的教程 它使用 jquery ajax mysql 和 php 现在我遇到了以下句子的一个小问题 result li strong row user strong img src alt row m
  • 在网页上写乐谱[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我希望能够在网页中编写乐谱和和弦 有没有可用的库 例如用于数学的 Mathjax 如果没有 那么还有其
  • 如何将水平 ul 列表中的项目与图像垂直对齐?

    我有以下 html 代码 div ul li a href index php site login About a li li a href index php site login FAQ a li li a href http twi
  • 如何在 HTML5/CSS3 中将视口锁定为纵向方向

    是否可以在移动设备上将视图端口的方向锁定为纵向 我用谷歌搜索了它 但无法找到确切的操作方法 这个技巧应该有效 media screen and orientation landscape html Rotate the content co
  • 定义我自己的 BASE_PATH 与 set_include_path?

    我了解了函数set include path 一直以来 我在config php文件中定义了一个常量 define BASE PATH var www mywebsite public html 在所有后续的 php 文件中 我会像这样包含
  • Woocommerce 预订中每人和每件商品的动态结账自定义字段

    对于预订网站 我正在尝试创建一个功能 可以根据人数添加与会者列表 感谢 LoicTheAztec 我已经获得了单次预订的代码 那部分工作正常 我还需要相同的功能来进行多次预订 我怎样才能实现这个目标 这是代码 Add a new check
  • 使用 Jquery 更改 css 属性时的事件检测

    有没有办法检测元素的 显示 css 属性是否更改 是否更改为无 块或内联块 如果没有的话有什么插件吗 谢谢 Note 突变事件 https developer mozilla org en US docs Web Guide Events
  • 在 JavaScript 中引用 C# 变量

    我已经阅读了很多线程 但我不明白为什么这不起作用 我正在创建一个将用作导航栏的 SharePoint Web 部件 一切都很顺利 直到我尝试在 JS 代码中引用 C 变量 这是来自 VisualWebPart1UserControl asc
  • 如何在 PHP 中使用 foreach 循环仅回显一次特定的多个相同记录?

    我在 PHP 中使用 foreach 循环得到这些输出 现在 foreach 内部的输出如下所示 PHP代码 table thead tr th ACCOUNT NUMBER th th CATEGORY th th AMOUNT th t
  • JQuery - 如何检测给定 div 中存在给定类的 div 数量?

    我有一个这样的div div class x div 并包含在这个 div 中 我有几个像这样的 div div class y div div class y div div class y div etc 问题1 如何检测容器 div
  • 在 PHP 中设置通知的 FCM 通道 ID

    我正在尝试使用 PHP 向 Android 设备发送 FCM 通知 我的代码适用于 Android O 之前的设备 在Android O中 我们还需要在请求中设置通道ID来接收通知 我不知道该怎么做 我已在应用程序中完成了必要的设置 并使用
  • 如何测试“If-Modified-Since”HTTP 标头支持

    使用 PHP 如何准确测试远程网站supports If Modified Since HTTP 标头 据我所知 如果您获取的远程文件自标头请求中指定的日期以来已被修改 它应该返回 200 OK 状态 如果尚未修改 则应返回 304 Not
  • 如何保存包含框架/iframe 的完整 html 页面?

    在网页抓取期间 我想将当前页面的 html 保存到文件中以供以后调试 browser html在大多数情况下有帮助 但是当页面包含 iframe frame 时 它 的内容不会返回browser html 我必须用类似的东西单独得到它bro
  • 如何在高速缓存中存储图像

    我对此完全空白 我想从 URL 下载图像 并且必须将其存储在内部 以便下次我不需要连接到网络 而是从缓存中检索它 但我不知道该怎么做 谁能帮我提供一个代码片段 import java io BufferedInputStream impor
  • 在 php 中回显 JSON 数据

    我正在尝试回显一些 JSON 数据 问题是数据包含变量 但我的代码没有将变量放入字符串中 这是我的代码 status row Status priority row Priority echo status status priority

随机推荐

  • 3Leetcode求和算法

    我在使用 3sum 算法的以下输入时遇到问题 我是 得到 超过时间限制 我的算法对于这个输入来说太慢了吗 有什么建议如何改进吗 leetcode原题 给定一个由 n 个整数组成的数组 nums nums 中是否存在元素 a b c 使得 a
  • Over() 函数没有覆盖表中的所有行

    我正在使用 MySQL 练习 SQL 并在 SQL 中遇到了奇怪的行为 假设我有一张这样的表 Delivery table delivery id customer id order date customer pref delivery
  • C# 使用 Linq Expression 进行动态数据库过滤

    我尝试创建通用方法来过滤数据库中的不同实体 以避免为每个实体创建庞大的方法 并使用非常相似的 if 语句组合过滤规则 现在我正在尝试创建表示相等比较的表达式 作为描述要比较的属性和某个值的参数表达式 我的概念如何解决问题以及我根据以下代码片
  • 互动倒计时增加?

    我有一个表单 如果没有完成任何鼠标交互 我想在 5 秒后关闭它 但如果完成任何鼠标交互 我希望它关闭countdown 5 seconds每次交互都会增加 5 秒 这是我到目前为止想到的 int countdown 5 System Tim
  • 将多个 Excel 工作表范围转换为 PDF VBA

    下面的代码是获取 Col E 的状态 如果它是 Include 那么其相应的工作表范围将被转换为 PDF 我已经尝试过了 但它无法正常工作并收到错误invalid procedure call or argument在线上 rng Expo
  • 如何让网络工作者跨域、多浏览器工作? IE SCRIPT5022:安全错误

    我创建了从单独的文件和内联工作人员 blob 调用的网络工作人员 这两种方法在大多数浏览器中都无法一致工作 我按照下面的教程使用 COR http www html5rocks com en tutorials workers basics
  • 使用 pROC 绘制 ROC 曲线失败

    我有一个数据集 其组织方式如下 gt head crypto data time btc price btc change btc change label eth price block size difficulty estimated
  • 如何在具有受保护功能的 React Router 中映射路由?

    我尝试使用映射和受保护函数中的 React Route 处理我的代码 This 组件数组 import LoginContainers from Containers LoginContainers LoginContainers impo
  • 为什么 Java 和 C# 没有隐式转换为布尔值?

    自从我开始使用 Java 以来 它不支持从数字类型到布尔值的隐式转换 这对我来说非常恼火 所以你不能做这样的事情 if flags 0x80 相反 你必须经历这种疯狂 if flags 0x80 0 null 和对象也是如此 我所知道的所有
  • JAVA - 如何将一个对象的属性复制到另一个具有相同属性的对象?

    假设我们有一个对象 A 定义如下 public class ObjectA private Attribute a1 private Attribute a2 private Attribute a3 由于某种原因 我需要创建第二个对象 B
  • 类型“Request”上不存在属性“”

    当试图延长Request包中的接口express要添加一些自定义属性 我收到以下打字稿错误 TS2339 Property does not exist on type Request
  • 如何在pyplot中自动标注最大值

    我试图弄清楚如何自动注释图形窗口中的最大值 我知道您可以通过手动输入 x y 坐标来注释您想要使用的任何点来完成此操作 annotate 方法 但我希望注释是自动的 或者自己找到最大值点 到目前为止 这是我的代码 import matplo
  • JMX 的使用以及如何用于现有应用程序

    几年前我们就在 JDK 5 上开发了分布式 Web 应用程序 JMX 将如何帮助这个应用程序 1 它能帮助我监控性能 内存 CPU 以及网络和磁盘 IO 吗 2 如果是这样 那么应用程序部署在多个服务器中 我如何在一个仪表板中进行监控 3
  • 为什么所有的 Active Record 都讨厌? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何在 Ruby 中将…(省略号)更改为…(三个句点)?

    我正在解析这个文件 http msdn microsoft com en us library ms189782 aspx using nokogiri 我发现有一些 省略号 该页面中的字符且无法删除 我想知道如何用Ruby来替换所有 省略
  • JavaScript 正则表达式异常(无效组)

    我有以下正则表达式 lt index d g 我正在尝试在像这样的字符串中查找索引整数 some text index 1 id 2 value 3 该表达式在 php 中工作正常 但在 javascript 中不起作用 我收到以下错误 未
  • 以正常形式打印浮点数,而不是指数形式/科学记数法[重复]

    这个问题在这里已经有答案了 我有一个以指数形式打印的数字 gt gt gt gt gt gt a 1 1221759 gt gt gt print a 8 184920266599223e 07 gt gt gt 我怎样才能让它以正常形式打
  • 如何在express和node中从html表单发送put请求

    我有一个用于编辑对象的表单 我想使用 Express 3 x 和 node js 正确处理它 编辑物品路线 item edit显示用于编辑对象的表单 我想我有三个选择 1 放置一个值为 edit 的隐藏字段 这样我就可以在express中正
  • 使用 MVCMailer 尝试发送到非本地电子邮件地址时,邮件服务器需要身份验证

    我想向用户发送新闻通讯电子邮件 我已经这样做了 public ActionResult SendNewsLetter userMailer NewsLetter Send return View 在 userMailer 类中 public
  • 基于超简单静态文件(html)的php站点缓存

    我有一个网站 基本上只显示内容 没有任何表格和后期处理 该网站基于 PHP 并托管在共享主机上 它很少改变 我想为此网站启用缓存 它是共享托管 所以我需要一个解决方案 不使用 Memcached 不需要将我的网站移至 VPS 不要使用APC