php静态


首先说一下静态的作用以及好处。用户通过浏览器发送请求,这时候php接收到以后,去webserver里查看是否有静态文件,如果有就直接分会给


用户,如果没有就会链接数据库,从数据库里取数据,然后生成静态的页面返回浏览器,大致过程就是这样,至于怎么实现有很多方法,如果使


用的开源框架那就更简单、

那么为何要使用静态呢?

1:由于数据已经生成静态页面,那么就省去了查询数据库,大大的提高了网页打开的速度;

2:静态页面有利于seo优化;

3:由于静态页面不会被sql注入更加安全;

PHP静态化的实现:

第一种方法:伪静态化,是html格式不过会传递参数,适合一些独立页面;


第二种方法:缓存方式,静态化是服务器做的,实际是个动态的请求,服务器为了可以缓存动态的结果,将链接做了静态化,每次点击链接时服


务器接受对应的 参数在缓存中查找,如果没有按照对应关系请求后台并将其加入缓存;


第三种方法:借助模板来完成静态化,这种方法适合大批文件的转化,诸如一个新闻发布系统,只需要先设计一个模板,再将模板中对应的字符


串用数据库中读取的内容替换即可,最后利用fso将数据写入html文件 .


我们以第三种方法来实现PHP的静态化:


创建用于指定要进行静态化数据信息的文件:test.html:

<form method="post" action="info.php">

商品名称:<input type="text" name="name" size="20">

商品信息:<textarea name="info" cols=”10” rows="25"></textarea>

<input type="submit" name="提交">

</form>



接着创建一个模板文件:info.html:

<html>

<body>

商品名称:{name}

商品信息:{info}

</body>

</html>

再创建一个静态化用PHP文件:info.php:

<?php

require_once("conn.php"); //引入连接数据库文件

$name=$_POST["name"];

$info=$_POST["info"]; //获得表单变量

$countfile="count.txt";

if(!file_exists($countfile))

{

fopen($countfile,"w"); //如果此文件不存在,则自动建立一个

}

$fp=fopen($countfile,"r");

$num=fgets($fp,20);

$num=$num+1; //每次其值自动加一

fclose($fp);

$fp=fopen($countfile,"w");

fwrite($fp,$num); //更新其值

fclose($fp);

$houzui=".html";

$path=$num.$houzui;

$sql="insert into info (id,name,info,path) values ('','".$title."'.'".$content$path."')";

$query=mysql_query($sql);

$fp=fopen("info.html","r"); //只读打开模板

$str=fread($fp,filesize("info.html"));//读取模板中内容

$str=str_replace("{name}",$name,$str);

$str=str_replace("{info}",$info,$str);//替换内容

fclose($fp);

if(!file_exists($path)){

$handle=fopen($path,"w"); //写入方式打开新闻路径

}

fwrite($handle,$str); //把刚才替换的内容写进生成的HTML文件

fclose($handle);

?>

例子说明:

(1)这个例子的关键就在于用函数str_replace()替换模板文件的内容,并且生成新的的网页;

(2)实际操作中,模板文件还可以加入大量的美化优化;

(3)这个例子生成的静态网页取名是以连续的数字命名,你可以进行任意更改

(4)静态化具体操作不难掌握,关键在于掌握它的理念,非常明了什么时候可以采用静态技术。


打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论