手机版

用PHP实现页面静态的超简单方法

时间:2021-09-07 来源:互联网 编辑:宝哥软件园 浏览:

为什么页面是静态的?

1.动态文件执行过程:解析-编译-运行

2.不需要编译静态文件,减少了服务器脚本的运行时间和服务器的响应时间,直接运行,响应速度快;如果页面的某些内容不经常变化,动态页面静态化是非常有效的加速方式。(纯静态,伪静态还是需要PHP解释器)

3.生成静态URL有利于SEO、蜘蛛抓取和包含,有利于提升排名

一种优化页面响应时间方法

1.静态动态页面

2.优化数据库

3.负载平衡

4.使用缓存等等

//静态动态页面一般用在变化不频繁的地方,而伪静态(如微博)一般不适用于变化频繁的地方。

静态详细介绍

1.纯静态可以分为局部静态(局部动态化,使用AJAX动态获取数据)和纯静态。

伪静态:更改URL(需要服务器支持,如apache等。)

2.从URL结构和页面名称来看,伪静态和静态页面是一样的。伪静态的页面后缀可以是html或目录格式

伪静态只是改变了URL的表达式,实际上是一个动态页面

静态页面可以节省服务器资源,而伪静态会严格增加服务器资源消耗

综上所述,在SEO方面,伪静态和静态页面的功能是一样的,但是伪静态本质上是一个动态页面,所以消耗的资源和动态页面是一样的,而且因为Rewrite服务器也需要消耗额外的资源。

缓冲区感知

1.开放缓冲区

用php.ini打开output_buffering,用ob_start()函数在php文件中打开

;默认值:关闭;开发价值: 4096;产值: 4096;http://php.net/output-bufferingoutput_buffering=40962。获取缓冲区的内容

在调用ob_get_contents()函数之前,需要打开Output_buffering=on。但是,如果没有打开output_buffering,在头文件中调用函数ob_start()时,也可以使用ob_get_contents()。

ob _ get _ content();//返回输出缓冲区的内容;

PHP如何实现纯静态页面

基本方式

1、文件放入内容

2.利用PHP内置缓存机制实现页面静态输出缓冲

Ob_start()//如果php.ini已经打开,这里会打开一个新的输出缓冲区;Ob_get_contents()//获取输出缓冲区的内容;Ob_clean()//清空输出缓冲区的内容,但不删除输出缓冲区ob_get_clean//获取输出缓冲区的内容并删除输出缓冲区,相当于ob_get_contents和ob_end_clean下面的代码。运行时不会有输出。

原因是输出缓冲区被清空,这可以从上图中理解

ob _ start();回声777;回声000;ob _ clean();echo ob _ get _ contents();

纯静态实现,代码和实现逻辑参考:

?Php/** *触发系统生成纯静态页面业务逻辑*有三种方案:*第一种:定时扫描器(由crontab处理)*第二种:手动触发模式,人工触发*第三种:页面添加缓存时间, 控制页面中操作的时间*///=============================================================//生成纯静态文件的步骤//1,然后, 生成一个静态文件//==============================================================实现页面静态的以下步骤:///1:A.php 2:输出A.html A.php请求的数据库数据:一般是将从数据库中取出的数组形式的数据给一个新数组,而输出//3:包含A.php的A.html文件:直接通过require_once()函数或inclde_once()//4:打开数据缓存ob_start()=获取缓存内容并生成静态文件file _ put _ contents ('index)中的数据。 ' shtml ',ob _ get _ clean//header(' content-type : text/htm;charset=utf-8 ');If (is _ file('。/index.html') (time ()-filemtime('。/index . html ')1200)){//加载静态文件require_once('。/index.html)如果缓存不是无效的,则直接为;} else {//regenerate//引入数据库链接操作require_once('。/db . PHP’)如果缓存失败;$sql='从新闻中选择*,其中' category_id`=1且' status`=1限制4 ';尝试{ $ db=db :3360 getinstance()-connect();$result=mysql_query($sql,$ db);$ NewsList=array();while($ row=MySQL _ fetch _ assoc($ result)){ $ news list[]=$ row;} } catch(异常$ e){//TODO } ob _ start();require _ once(' template/index . PHP ');//导入模板文件file _ put _ contents('。/index.html ',ob _ get _ contents());//生成静态文件//ob _ clean();静态页面中局部动态的实现

在Jquery中使用ajax请求文件来获取返回的JSON数据,然后将其应用到模板中

伪静态的

默认情况下,Nginx服务器不支持PATH INFO模式,这需要额外的配置

Apache伪静态设置

1.打开apache mod_rewrite.so,并在httpd.conf中进行配置.

如果您测试它,您可以用phpinfo检查它,看看加载的模块是否有这个模块

2.支持induldenconf/extra/httpd-vhost . conf虚拟主机、虚拟域名配置

3.编辑虚拟主机文件

4.将配置的域名添加到本地主机文件中(如果windows需要本地测试)

5.伪静态配置

-5.1重写引擎on-5.2编写规则

^/post/([0-9]*).html$ /post.php?Id=$1放在virtualhost段中

写于post.php

?php echo“这是”。$ _ GET[' id '];然后你可以参观a.com/123.html,并返回这是123。

扩展名:如果目录中有真实文件123.html,则加载动态帖子123。怎么设置?如果您希望当前文件有一个真正的静态文件,您需要以下配置

在^/post/([0-9]*).重写了引擎html$ /post.php?Id=$1#目录重写秒% { document _ root } % { request _ filename }存在!-d#文件重写时间% { document _ root } % { request _ filename } }存在!-f上面两句话的意思是,如果根目录下有一个请求的目录或文件,就使用它

当然,这应该放在刚才重写的上面。

Nginx伪静态

伪静态影响服务器性能,不是越多越好,需要根据需求确定

用PHP实现页面静态的超简单方法以上就是边肖和大家分享的全部内容。希望能给大家一个参考,多支持我们。

版权声明:用PHP实现页面静态的超简单方法是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。