掌握常见的几种页面静态化的方法,掌握几种页面静态_PHP教程
掌握常见的几种页面静态化的方法,掌握几种页面静态
常说的页面静态化分为两种,一种是伪静态,即url 重写,一种是真静态化。我们以真静态化为主来讲讲。
什么是PHP静态化
PHP静态化的简单理解就是使网站生成页面以静态HTML的形式展现在访客面前,PHP静态化分纯静态化和伪静态化,两者的区别在于PHP生成静态页面的处理机制不同。
为什么要让网页静态化
一、加快页面打开浏览速度,静态页面无需连接数据库打开速度较动态页面有明显提高;
二、有利于搜索引擎优化SEO,Baidu、Google都会优先收录静态页面,不仅被收录的快还收录的全;
三、减轻服务器负担,浏览网页无需调用系统数据库;
四、网站更安全,HTML页面不会受php相关漏洞的影响; 观看一下大一点的网站基本全是静态页面,而且可以减少攻击,防sql注入。
数据库出错时,不影响网站正常访问。
生成html文章虽操作上麻烦些,程序上繁杂些,但为了更利于搜索,为了速度更快些,更安全,这些牺牲还是值得的。
PHP生成静态HTML页面的方法
利用PHP模板生成静态页面
PHP模板实现静态化非常方便,比如安装和使用PHP Smarty实现网站静态化,也可以自己写一套模板解析规则,常见的可以模仿各类cms的模板规则。
1.使用PHP文件读写功能与ob缓存机制生成静态页面
比如某个商品的动态详情页地址是: http://xxx.com?goods.php?gid=112
那么这里我们根据这个地址读取一次这个详情页的内容,然后保存为静态页,下次有人访问这个商品详情页动态地址时,我们可以
直接把已生成好的对应静态内容文件输出出来。
<!--?<span>php </span><span>$gid</span> = <span>$_GET</span>['gid']+0;<span>//</span><span>商品id</span> <span>$goods_statis_file</span> = "goods_file_".<span>$gid</span>.".html";<span>//</span><span>对应静态页文件</span> <span>$expr</span> = 3600*24*10;<span>//</span><span>静态文件有效期,十天</span> <span>if</span>(<span>file_exists</span>(<span>$goods_statis_file</span><span>)){ </span><span>$file_ctime</span> =<span>filectime</span>(<span>$goods_statis_file</span>);<span>//</span><span>文件创建时间 </span> <span>if</span>(<span>$file_ctime</span>+<span>$expr</span>--><span>time</span>()){<span>//</span><span>如果没过期</span> <span>echo</span> <span>file_get_contents</span>(<span>$goods_statis_file</span>);<span>//</span><span>输出静态文件内容</span> <span>exit</span><span>; }</span><span>else</span>{<span>//</span><span>如果已过期</span> <span>unlink</span>(<span>$goods_statis_file</span>);<span>//</span><span>删除过期的静态页文件</span> <span>ob_start</span><span>(); </span><span>//</span><span>从数据库读取数据,并赋值给相关变量 //include ("xxx.html");//加载对应的商品详情页模板</span> <span>$content</span> = <span>ob_get_contents</span>();<span>//</span><span>把详情页内容赋值给$content变量</span> <span>file_put_contents</span>(<span>$goods_statis_file</span>,<span>$content</span>);<span>//</span><span>写入内容到对应静态文件中</span> <span>ob_end_flush</span>();<span>//</span><span>输出商品详情页信息</span> <span> } }</span><span>else</span><span>{ </span><span>ob_start</span><span>(); </span><span>//</span><span>从数据库读取数据,并赋值给相关变量 //include ("xxx.html");//加载对应的商品详情页模板</span> <span>$content</span> = <span>ob_get_contents</span>();<span>//</span><span>把详情页内容赋值给$content变量</span> <span>file_put_contents</span>(<span>$goods_statis_file</span>,<span>$content</span>);<span>//</span><span>写入内容到对应静态文件中</span> <span>ob_end_flush</span>();<span>//</span><span>输出商品详情页信息</span> <span> } </span>?>
2.使用nosql从内存中读取内容(其实这个已经不算静态化了而是缓存);
以memcache为例:
<!--?<span>php </span><span>$gid</span> = <span>$_GET</span>['gid']+0;<span>//</span><span>商品id</span> <span>$goods_statis_content</span> = "goods_content_".<span>$gid</span>;<span>//</span><span>对应键</span> <span>$expr</span> = 3600*24*10;<span>//</span><span>有效期,十天</span> <span>$mem</span> = <span>new</span><span> Memcache; </span><span>$mem</span>--->connect('memcache_host', 11211<span>); </span><span>$mem_goods_content</span> = <span>$mem</span>->get(<span>$goods_statis_content</span><span>); </span><span>if</span>(<span>$mem_goods_content</span><span>){ </span><span>echo</span> <span>$mem_goods_content</span><span>; }</span><span>else</span><span>{ </span><span>ob_start</span><span>(); </span><span>//</span><span>从数据库读取数据,并赋值给相关变量 //include ("xxx.html");//加载对应的商品详情页模板</span> <span>$content</span> = <span>ob_get_contents</span>();<span>//</span><span>把详情页内容赋值给$content变量</span> <span>$mem</span>->add(<span>$goods_statis_content</span>,<span>$content</span>, <span>false</span>, <span>$expr</span><span>); </span><span>ob_end_flush</span>();<span>//</span><span>输出商品详情页信息</span> <span> } </span>?>
memcached是键值一一对应,key默认最大不能超过128个字节,value默认大小是1M,因此1M大小满足大多数网页大小的存储。
以上就是页面静态化的相关方法,希望对朋友们有所帮助
每天更新精彩技术文章,尽在www.phpskill.com
php纯技术学习交流群: 323899029
原文来自:http://www.phpskill.com/html/show-1-4418-1.html

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

jsp属于后端。jsp的本质是一种servlet,而servlet又是服务器端的java应用程序,所以jsp是属于后端的技术。JSP部署于网络服务器上,可响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。JSP技术以Java作为脚本语言,为用户HTTP请求提供服务,并能与服务器上的其它Java程序共同处理复杂的业务需求。

新建好springboot项目以后目录如下:第一步:在项目的pom文件中加入配置jsp所需要的jar包代码:org.apache.tomcat.embedtomcat-embed-jasperprovided第二步:在main路径下新建目录webapp,在webapp下新建路径WEB-INF,在WEB-INF下新建路径jsp,在这个路径下放置我们要使用的jsp文件第三步:在主配置文件中配置jsp文件的访问路径和后缀代码:spring.mvc.view.prefix=/WEB-INF/jsp/sp

实现步骤:1、在JSP页面中引入JSTL标签库;2、从数据库中获取数据;3、对数据进行分页处理;4、在页面中显示分页导航条;5、根据当前页码和每页显示数量,从分页后的数据中获取对应的数据并显示在页面上即可。

jsp和html区别:1、运行机制;2、用途;3、与Java的关系;4、功能;5、与后端的关系;6、速度;7、可维护性和扩展性;8、学习和使用的难易程度;9、文件后缀和识别工具;10、社区和支持;11、安全性。详细介绍:1、运行机制,HTML是一种标记语言,主要用于描述和定义网页的内容,它运行在客户端,由浏览器解释执行,JSP是一种动态网页技术,运行在服务器端等等。

一、实现分页查询的核心sql语句(1)查询数据库的记录总数的sql语句:selectcount(*)from+(表名);(2)每次查询的记录数的sql语句:其中:0是搜索的索引,2是每次查找的条数。select*from表名limit0,2;二、代码实现*上篇写过这两个类,DBconnection类:用于获取数据库连接,Author对象类。这两个类的代码点击连接查看。点击链接查看DBconnection类和Author对象类(1)登录页面:index.jsp。Inserttitlehere用户列

JSP是一种动态网页技术标准,其文件格式是在传统的网页HTML文件(.htm,.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。

JavaWeb开发技术栈:掌握JavaEE、Servlet、JSP、Spring等用于Web开发的技术随着互联网的迅速发展,在当今的软件开发领域,Web应用的开发已经成为一种非常重要的技术需求。而Java作为一种广泛应用的编程语言,其在Web开发领域也有着重要的地位。JavaWeb开发技术栈涉及多项技术,如JavaEE、Servlet、JSP、Spr

JSP能否被PHP取代?JSP(JavaServerPages)和PHP(HypertextPreprocessor)都是常用的服务器端脚本语言,用于动态生成网页内容。虽然它们各有特点和优势,但在实际应用中,是否可以完全取代对方呢?本文将分析两者的优缺点,并通过具体的代码示例进行比较。首先,我们来看一下JSP和PHP各自的特点。JSP是一种基于Java的
