页面静态化+过期时间

代码:

<?php
Header("content-type:text/html;charset=UTF-8");
$gid = $_GET['news_id']+0;//商品id
$goods_statis_file = "goods_file_".$gid.".html";//对应静态页文件
$expr = 10;//静态文件有效期,秒
if(file_exists($goods_statis_file)){
$file_ctime = filectime($goods_statis_file);//文件创建时间
if($file_ctime+$expr > time()){//如果没过期
echo file_get_contents($goods_statis_file);//输出静态文件内容
exit;
}else{//如果已过期
unlink($goods_statis_file);//删除过期的静态页文件
ob_start(); //从数据库读取数据,并赋值给相关变量
//include ("xxx.html");//加载对应的商品详情页模板
echo date('Y-m-d H:i:s', time());
$content = ob_get_contents();//把详情页内容赋值给$content变量
file_put_contents($goods_statis_file,$content);//写入内容到对应静态文件中
ob_end_flush();//输出商品详情页信息
}
}else{
$dsn = "mysql:host=127.0.0.1;dbname=seven_month";
$db = new PDO($dsn, 'root', 'root', array(PDO::ATTR_PERSISTENT =>true));
$db->query(" set names utf8 ");
set_time_limit(0);
$sql = "SELECT * FROM `news` ; ";
$data = $db->query($sql)->fetchAll(PDO::FETCH_ASSOC);
//开启缓存
ob_start();
include ('show.php');
//从数据库读取数据,并赋值给相关变量
//include ("xxx.html");//加载对应的商品详情页模板
$content = ob_get_contents();//把详情页内容赋值给$content变量
file_put_contents($goods_statis_file, $content);//写入内容到对应静态文件中
ob_end_flush();//发送内部缓冲区的内容到浏览器,删除缓冲区的内容,关闭缓冲区。
}

转载于:https://www.cnblogs.com/wanglongfei/p/9806531.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/365358.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实施动态代理-比较

有时需要拦截某些方法调用&#xff0c;以便每次调用被拦截方法时都执行自己的逻辑。 如果您不属于Java EE的CDI领域&#xff0c;并且不想使用诸如Aspectj之类的AOP框架&#xff0c;那么您将有一个简单而有效的替代方法。 从1.5版开始&#xff0c;JDK附带了类java.lang.reflect…

结构专业规范大全_1.2万篇 建筑行业规范大全套!速来!

应广大站友以及会员用户对建筑规范的要求&#xff0c;我们整理了近几年来国家发布的各个专业的标准、规范、图集&#xff0c;以及全国各地共32个地区的区域标准&#xff0c;总计12000余篇&#xff0c;共计80G的建筑行业规范&#xff01;BIMer自学站将会在一到两个月的之间内相继…

数据库如何进行索引优化

数据库索引 1&#xff0e;什么是索引 在数据库中&#xff0c;索引的含义与日常意义上的“索引”一词并无多大区别&#xff08;想想小时候查字典&#xff09;&#xff0c;它是用于提高数据库表数据访问速度的数据库对象。A&#xff09;索引可以避免全表扫描。多数查询可以仅扫描…

php7如何安装swoole,PHP7如何安装Swoole?

PHP7如何安装Swoole&#xff1f;发布时间&#xff1a;2020-05-19 16:35:02来源&#xff1a;亿速云阅读&#xff1a;135作者&#xff1a;Leah这篇文章给大家分享的是PHP7安装Swoole的详细安装教程&#xff0c;相信大部分人都还不知道怎么安装&#xff0c;为了让大家学会&#xf…

第二章总结

第二章 寄存器 1.CPU概述 一个典型的CPU由运算器、控制器、寄存器等器件组成。 内部总线实现CPU内部各个器件之间的联系。 外部总线实现CPU和主板上其它器件的联系。 2.通用寄存器 8086CPU中&#xff0c;寄存器AX, BX, CX, DX通常用于存放一般性数据&#xff0c;称为通用寄存器…

赞!15个来自 CodePen 的酷炫 CSS 动画效果

CodePen 是一个在线的前端代码编辑和展示网站&#xff0c;能够编写代码并即时预览效果。你在上面可以在线分享自己的 Web 作品&#xff0c;也可以欣赏到世界各地的优秀开发者在网页中实现的各种令人惊奇的效果。 今天这篇文章为大家挑选了15个超炫的 CSS 动画效果的例子&#x…

Java 8 Friday Goodies:新的新I / O API

在Data Geekery &#xff0c;我们喜欢Java。 而且&#xff0c;由于我们真的很喜欢jOOQ的流畅的API和查询DSL &#xff0c;我们对Java 8将为我们的生态系统带来什么感到非常兴奋。 我们已经写了一些关于Java 8好东西的博客 &#xff0c;现在我们觉得是时候开始一个新的博客系列了…

ashly理器4.8软件汉化版_AMD 处理器核心比英特尔多还更便宜?英特尔回应

IT之家 9 月 25 日消息 英特尔已在本月初发布了 11 代酷睿移动处理器&#xff0c;搭载 11 代酷睿的产品最早将在 10 月上市。现在&#xff0c;新浪科技访了英特尔公司中国零售销售集团总经理唐炯&#xff0c;就 11 代酷睿产品进行讨论。在谈到 AMD 处理器比英特尔便宜&#xff…

JAVA比较两个List集合的方法

import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.HashSet; import java.util.List; import java.util.Set;public class FindNumber { public static void main(String[] args) { // 注意&#xff1a;一定要使用创建对象…

js 解析php serialize,php如何解析jquery serialize 提交后的数据

客户端通过jquery serialize 提交表单数据$("#submit_survey").click(function(){ $.post(SITE_URLactivity/survey/savesurvey, {data:$(#survey_form).serialize()}, function(response){ if (response.error_code) { infotips(response.msg, $(.submit_tips)); } …

OutOfMemoryError:解决方案反模式

这些年来&#xff0c;我们一直密切关注以OutOfMemoryError消息的不同形式打包的问题。 通过专门的服务&#xff08;例如Google警报&#xff09;&#xff0c;每天就特定关键字的新问题进行摘要&#xff0c;使我们对应用程序因日志中的java.lang.OutOfMemoryError失败而出现的情况…

python在线问卷调查系统源代码_基于Python 练习1情况的在线问卷

Q1. 您每个月的生活费是&#xff1f;(单选题)Q2. 您在职的职位是&#xff1a;(单选题)Q3. 您的家庭背景&#xff1f;(单选题)Q4. 下列哪一个是Python中正确的变量名&#xff1f;()(单选题)A Sprout*1B 1SproutC Sprout 1D Sprout_1Q5. Turtle 中的 Write 命令是用来做什么的 ()…

leetcood学习笔记-58-最后一个单词的长度

题目描述&#xff1a; 第一次解答&#xff1a; class Solution:def lengthOfLastWord(self, s: str) -> int:Ls.strip().split(" ")if L[-1]"" :return 0return len(L[-1]) 优化后&#xff1a; class Solution:def lengthOfLastWord(self, s: str) ->…

Plyr – 简单,灵活的 HTML5 媒体播放器

Plyr 是一个简单的 HTML5 媒体播放器&#xff0c;包含自定义的控制选项和 WebVTT 字幕。它是只支持现代浏览器&#xff0c;轻量&#xff0c;方便和可定制的媒体播放器。还有的标题和屏幕阅读器的全面支持。 在线演示 源码下载 您可能感兴趣的相关文章网站开发中很有用的 …

第一章 SpringBoot快速入门

1.1、包依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.14.RELEASE</version><relativePath/> <!-- lookup parent from repository --> …

使用Redis的简单消息队列

在本文中&#xff0c;我们将使用列表命令将Redis用作简单的消息队列。 假设我们有一个允许用户上传照片的应用程序。 然后在应用程序中&#xff0c;我们以不同大小显示照片&#xff0c;例如Thumb&#xff0c;Medium和Large。 在第一个实现中&#xff0c;我们可以承担在同一请…

solaris配置php,Solaris下安装Oracle_启动Oracle及监听

无论是在Linux下还是在Solaris下都安装过很多次Oracle&#xff0c;几乎都没成功过。最开始安装的时候连安装页面都见不到&#xff0c;后来&#xff0c;能够看到安无论是在Linux下还是在Solaris下都安装过很多次Oracle&#xff0c;几乎都没成功过。最开始安装的时候连安装页面都…

python es 数据库 ik_Linux系统:centos7下搭建ElasticSearch中间件,常用接口演示

一、中间件简介1、基础概念ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎&#xff0c;基于RESTful web接口。Elasticsearch是用Java开发的&#xff0c;并作为Apache许可条款下的开放源码发布&#xff0c;是当前流行的企业级搜索引擎…

【C++】满二叉树问题

/* 给出一棵满二叉树的先序遍历&#xff0c;有两种节点&#xff1a;字母节点&#xff08;A-Z&#xff0c;无重复&#xff09;和空节点&#xff08;#&#xff09;。要求这个树的中序遍历。输出中序遍历时不需要输出#。 满二叉树的层数n满足1<n<5。Sample Input: ABC#D#ESa…

NativeScript - JS 构建跨平台的原生 APP

使用 NativeScript&#xff0c;你可以用现有的 JavaScript 和 CSS 技术来编写 iOS、Android 和 Windows Phone 原生移动应用程序。由原生平台的呈现引擎呈现界面而不是 WebView&#xff0c;正因为如此&#xff0c;应用程序的整个使用体验都是原生的。 NativeScript 使您可以使用…