php - 动态 PHP 内容,存储它并每天执行而不是每次加载页面?

标签 php

我希望回显一些使用 php 类从源收集的内容。没有其他方法可以获取此内容(只是文本)。

现在内容在不断变化,因此默认功能是在每次页面加载时访问和回显它,但是我更愿意每天更新一次,但在每次页面加载时继续回显内容。

所以我的问题是类文件已编码,因此我无法以这种方式进行更改。我希望我可以创建一些东西来存储文本并回显存储的文本,直到第二天它将运行原始函数以获取新内容。

收集并回显内容的函数:

<?php showcontent($txtonly); ?>

我也不想将内容放在文件中并获取它的内容。希望有人能帮助我:)

最佳答案

当您从源中检索它时,编写一个文本文件。在每次加载页面时,检查该文件的存在时间是否超过一天。如果是,则使用正常方法检索新内容并将其保存到文件中。如果不超过一天,就读取本地缓存文件并输出:

$cache_file = '/path/to/file.txt';

// Page was  requested....
// It's less than a day old, just output it.
if (file_exists($cache_file) && filemtime($cache_file) > time() - 86400) {
  echo file_get_contents($cache_file);
}
// It's older than a day, get the new content
else {
  // do whatever you need to get the content
  $content = whatever();

  // Save it into the cache file
  file_put_contents($cache_file, $content);
  // output the new content
  echo $content;
}

注意:您需要确保存储缓存文件的目录可由您的网络服务器写入。

关于php - 动态 PHP 内容,存储它并每天执行而不是每次加载页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7206087/

相关文章:

php - 锁定 Web 应用程序仅适用于内网

php - 如何将标题放入 while 循环中,仅用于单个结果而不是重复结果?

php - 将sql结果存入数组

php - 如何在 WooCommerce 的结帐字段之间添加标题

php - Laravel:非复合名称 'Cache' 的 use 语句无效

php - 文件大小(): giving incorrect result

php - 在 PHP foreach 循环中混合数组

php - Laravel/Eloquent - 列名作为变量

php - Symfony 验证类 : Undefined property $groups

php - 如果未调用所需的方法,Mockery/Etsy PHPExtensions 不会失败测试