PHP 网站优化之页面静态化

news/2024/5/9 14:36:51/文章来源:https://blog.csdn.net/qq_19448277/article/details/79269789
页面静态化是提高网站访问速度的一个很好的优化方法,可以提高网站50%以上的访问速度,但是也有缺点,就是换的数据无法及时更新。
那页面静态化是如何实现的呢,就是把PHP生成的动态页面保存成静态的html文件,用户访问该静态页面。
直接上代码:
<?phperror_reporting(E_ALL);// 定义缓存文件define("CACHE_PATH", str_replace("\\", "/" ,dirname(__FILE__)).'/cache/'); display_cache();// 数据库链接// sleep(2);// 网站逻辑// // ob_start('ob_gzip');// 引入模板文件include 'test_tpl.php';$output = ob_get_contents();write_cache($output, 10);return $output;ob_end_clean();/*** 写入缓存* @param  string $output [要缓存的页面内容]* @param  string $time [缓存时间,单位分钟]* @return [type]         [description]*/function write_cache($output='', $time=0){$filepath = get_cache_name();$expire = time() + ($time * 60);if (!$fp = @fopen($filepath, 'wb')){return false;}if (flock($fp, LOCK_EX)){fwrite($fp, $expire.'--TIME-->'.$output);flock($fp, LOCK_UN);}fclose($fp);@chmod($filepath, 0755);}/*** 读取缓存* @return [string] [输出缓存的静态页面]*/function display_cache(){$filepath = get_cache_name();if(!@file_exists($filepath)){return false;}// 打开文件if(!$fp = fopen(CACHE_PATH.$file_name,'rb')){return false;}flock($fp,LOCK_SH);$cache = '';if (filesize($filepath) > 0){$cache = fread($fp, filesize($filepath));}flock($fp, LOCK_UN);fclose($fp);// 判断文件格式是否正确,是否包含过期时间if ( ! preg_match("/(\d+--TIME-->)/", $cache, $tres)){return FALSE;}// 判断时间是否过期,过期则删除掉if (time() >= trim(str_replace('--TIME-->', '', $tres['1']))){@unlink($filepath);return FALSE;}$cache = preg_replace("/(\d+--TIME-->)/", '', $cache);ob_start('ob_gzip');echo $cache;ob_end_flush();die();}/*** 获取缓存的文件名* @return [type] [description]*/public function get_cache_name(){// 将当前页面的全路径MD5加密后作为缓存的文件名$url = 'http://'.$_SERVER['SERVER_NAME'].':'.$_SERVER["SERVER_PORT"].urldecode($_SERVER["REQUEST_URI"]);$file_name = md5($url.'key_123'); // 加密的时候增加一个密钥,可以起到部分的反爬效果return CACHE_PATH.$file_name;}/*** 压缩要传输的内容* @return [type] [description]*/function ob_gzip($contents=''){if(extension_loaded("zlib") && strstr($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')){$contents = gzencode($contents, 9, FORCE_GZIP);header ("Content-Encoding: gzip");}header ('Content-Length: ' . strlen($contents));return $contents;}
?>

zlib开发可以参考: http://blog.csdn.net/qq_19448277/article/details/79265316

优化前:

优化后:


希望能帮助到需要的人,如有大神有更好的方法,欢迎交流,指教(qq:524277477,微信:13263412524),本人原创,若转载,请说明出处。谢谢

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

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

相关文章

网站性能分析及优化方法

服务器端 负载均衡 LVS 简介&#xff1a; LVS是一个开源的软件&#xff0c;可以实现LINUX平台下的简单负载均衡。LVS是Linux Virtual Server的缩写&#xff0c;意思是Linux虚拟服务器。 分为三层结构 1.负载调度器 2.服务器池 3.共享存储 优点&#xff1a; 1、开源&#xff0c;…

Mysql官方网站到底该如何下载、安装?(超详细教程)

第一步搜索MySQL:https://www.mysql.com/ 第二步找到下载地址 点击进去后往下翻&#xff0c;能看到 这就是我们要下载的了&#xff0c;点击进入 不要选错了 选择下载第二个&#xff0c;一次性下载安装 前一个也可以&#xff0c;包比较小&#xff0c;但是是一边下载 一边安装&a…

444day(mouseover与mouseenter不同,过滤选择器)

《2018年12月21日》【连续444天】 标题&#xff1a;mouseover与mouseenter不同&#xff0c;过滤选择器&#xff1b; 内容&#xff1a; mouseenter: 与mouseover的不同&#xff1a;http://www.w3school.com.cn/tiy/t.asp?fjquery_event_mouseenter_mouseover 过滤选择器&…

8个超棒的学习jQuery的网站

根据国外科技网站 W3Techs 一项调查了近100万个网站数据显示&#xff0c;jQuery是目前最流行的 JavaScript 库。对于初学者来说&#xff0c;有的时候很难找到一个好的学习jQuery的网站&#xff0c;所以本文收集了8个很棒的 jQuery 学习网站推荐给大家。 1. Learning jQuery 最…

批量爬取某图片网站的图片

批量爬取某图片网站的图片 声明&#xff1a;仅用于爬虫学习&#xff0c;禁止用于商业用途谋取利益 1、网页解析 &#xff08;1&#xff09;打开veer首页&#xff0c;F12(谷歌浏览器)&#xff0c;输入关键字&#xff0c;点击搜索&#xff0c;点击查看如图画圈位置 &#xff…

源码编译安装Nginx及网站服务配置

文章目录 一、Nginx概述1.1 Nginx概述1.2 Nginx和Apache的区别1.3Nginx和Apache的优缺点差异1.4Nginx的进程 二、源码编译安装nginx服务2.1关闭防火墙&#xff0c;将nginx所需压缩包放入/opt目录下2.2安装依赖包2.3创建运行用户和组&#xff0c;便于管理2.4解压软件包&#xff…

程序员实用工具网站

目录 1、搜索引擎 2、PPT 3、图片操作 4、文件共享 5、应届生招聘 6、程序员面试题库 7、办公、开发软件 8、高清图片、视频素材网站 9、项目开源 10、在线工具宝典大全 程序员开发需要具备良好的信息检索能力&#xff0c;为了备忘&#xff08;收藏夹真是满了&#x…

mouseover 和 mouseenter

不论鼠标指针穿过被选元素或其子元素&#xff0c;都会触发 mouseover 事件。 只有在鼠标指针穿过被选元素时&#xff0c;才会触发 mouseenter 事件。 <!Doctype html><head><script type"text/javascript" src"/jquery/jquery.js"><…

教会你如何在自己建立的网站上使用Mondrian和MDX语句对数据库查询

一个简单的Mondrian例子(部分参考某个大牛的文档~~)希望大家学到东西~ 可以详细参考豆丁网上的一个文档&#xff1a;http://www.docin.com/p-88928995.html 也可以跟我一起做~ 3.1 创建新的web项目 3.1.1 打开myEclipse,新建一个网站我的是这样的&#xff1a; 注意名字要按照…

网站建设的常识

1,整站DIVCSS步局&#xff0c;虽然写起来很痛苦&#xff0c;注意还要兼容FIERFOX浏览器 css: 1&#xff0c;通常用一个通用的CSS&#xff0c;每个页面都引用&#xff0c;公用的CSS全包含在里面&#xff0c;单个页面再做 一个CSS文件 2&#xff0c;背景图片&#xff0c;把页面用…

高并发高负载的网站架构

这一篇&#xff0c;主要是从技术的角度来阐述网站的架构和功能。在开始技术性的讨论之前&#xff0c;还要说一下前文没有解决的问题。第一是网站名字的问题&#xff0c;给网站取名字&#xff0c;确实很费了我的一番头脑&#xff0c;因为要做数码照片类的网站&#xff0c;又因为…

爬虫小试-将某网站内的试题爬取出来并保存到本地word

emmm&#xff0c;因为要刷作业的试题&#xff08;QWQ题目实在是太多了&#xff09;&#xff0c;在机缘巧合之下竟发现老师上传的题目全部是某网站上的&#xff0c;于是乎哈哈哈&#xff0c;爬下来做题库方便查询&#xff08;CtrlF&#xff09;&#xff0c;下面进入正题&#xf…

asp.net网站服务器搭建之从零开始

<script languagejavascript srchttp://www.shiqiaotou.com/donetk/Header.js></script> 一 IIS&#xff08;Internet Information Services&#xff09;安装: 1.选择"控制面板"。 2.点"添加或删除程序"。 3.选择"添加/删除Windows组…

优化网站性能 提高网站速度访问速度的14条实践

优化网站性能 提高网站速度访问速度的14条实践 西风坊 2009年01月07日17:57 查看 3380次 作者:yaosl 【 大 中 小】 文章分类&#xff1a; 前端交互 相信互联网已经越来越成为人们生活中不可或缺的一部分。ajax&#xff0c;flex等等富客户端的应用使得人们越加“幸福”地体验着…

配色网站50个(转载)

版权声明&#xff1a;本文为博主原创文章&#xff0c;遵循 CC 4.0 BY-SA 版权协议&#xff0c;转载请附上原文出处链接和本声明。 本文链接&#xff1a; https://blog.csdn.net/weixin_45028175/article/details/90407778 50个国内外配色网站整理收集 (包括网站 插件 工具 ap…

yoowalk–web版3D网站浏览,太强了!

刚刚GOOGLE一下&#xff0c;在这里 看到了一个不错的Flex应用介绍&#xff1a; 记得大学的时候玩文字MUD&#xff0c;玩得不亦乐乎&#xff0c;而最近游戏界在狂炒Web游戏&#xff0c;各大游戏界巨头也纷纷投入巨资&#xff0c;希望依靠Web游戏重新对游戏巨头进行 排名刷新。现…

Day4 使用PolarDB和ECS搭建门户网站

Day4 使用PolarDB和ECS搭建门户网站 文章目录 Day4 使用PolarDB和ECS搭建门户网站背景知识实践配置PolarDB安装LAMP安装与配置PbootCMS重启服务验证完成 背景知识 PolarDB 阿里云自研100%兼容MySQL、100%兼容PostgreSQL、高度兼容Oracle语法集群架构&#xff0c;计算与存储分离…

thinkphp6 问题描述,网站在win环境没问题在Linux环境下点击提交,不会提交数据,或者根本无法点击提交

个人纪录&#xff1a; 框架&#xff1a;thinkphp6 开发环境&#xff1a;wnmp (小皮面板) 生产环境&#xff1a;lnmp (阿里云宝塔) 解决方案&#xff1a; php.ini修改 ; max_input_vars 10000

Centos7使用SimpleHttpServer快速搭建素材分享网站

背景 博主在日常的工作中&#xff0c;会经常使用到各种尺寸的图片素材或者视频素材&#xff0c;当然周边的同事也会用得到&#xff0c;所以自己想做一个素材的分享网站&#xff0c;就有点类似于镜像站的那种&#xff0c;博主的在linux 用的是python自带的web服务器SimpleHTTPS…