A-A+
教你如何将PHP页面转化成静态html页面
首先要知道为什么要转呢,我们辛辛苦苦学着制做动态页面,但现在到头来又要转化成静态页面,这是为什么呢?
一是能减轻其服务器的负担,二是因为生成了HTML静态页面,所以其网站被搜索引擎搜索到的机率 更大一些在源码中有着比较详细的注释.
这里主要学习的是在添加新闻时自动生成静态的 html 文件,添加时生成静态 html 和修改时再次生成道理是差不多的,都是利用了数据替换模板的技术来重新生成,先看一下添加时生成静态 html 的add.php文件。目前xiariboke.net基本已实现添加文章时生成静态html。xiariboke.net
<!--?php <br ?--> require_once("mysql_inc.php"); //引用conn.php,连接数据库 $title=$_POST['title']; $content=$_POST['content']; //获得表单变量 //以下建立一文本文档,其值自动计数 $countfile="count.txt"; if(!file_exists($countfile)) { fopen($countfile,"w"); //如果此文件不存在,则自动建立一个 } $fp=fopen($countfile,"r"); //xiariboke.net基础实例 $num=fgets($fp,20); $num=$num+1; //每次其值自动加一 fclose($fp); $fp=fopen($countfile,"w"); fwrite($fp,$num); //更新其值 fclose($fp); //利用上面自动计数的值获得HTML的路径$path $houzui=".html"; $path=$num.$houzui; //这样形成的路径是自动增长的,如1.html,2.html,3.html……….添加一条新闻 便自动加上1 //以下用SQL语句添加数据至表 news $sql="insert into news (id,title,content,path) value s ('','".$title."','".$content."','".$path."')"; $query=mysql_query($sql); //以下为关键之处,把从表单获得的数据替换模板中的{title},{content}标记 $fp=fopen("mode.html","r"); //只读打开模板 $str=fread($fp,filesize("mode.html"));//读取模板中内容 $str=str_replace("{title}",$title,$str); $str=str_replace("{content}",$content,$str);//替换内容 fclose($fp); $handle=fopen($path,"w"); //写入方式打开新闻路径 fwrite($handle,$str); //把刚才替换的内容写进生成的HTML文件 fclose($handle); //收尾工作: echo "<a href="$path" target="_blank">查看刚才添加的新闻</a>"; ?>
这个就是核心文件了,基本上就是利用了 str_replace 的替换函数进行模板的替换,然后再写入 html 页面的,下面将整个打包的文件提供下载,提供下载的包里面引用了 conn.php,连接数据库的文件,实际上我们生成静态html的数据都是连接数据库里的数据,这里就不详细讲解了,如果有兴趣的话,可以看一下夏日php+mysql文章系统,里面几乎包含了所有生成静态的功能,且源码简单,主要是让初学者学习的。
这里有一个完整的生成实例,点击进行下载。
求懂的人教教我
不懂 到底要怎么弄啊?都急死了 好复杂的样子
不是我打击你,这个代码绝对没测试过
测试过的,未出现什么错误。
super cache 和那个叫cos什么的插件不行吗?我就是因为wordpress不能真静态才转的zblog,现在速度提了一大块
wordpress 可以使用插件真静态的,也可以使用缓存插件提高速度。
来涨姿势的!