A-A+

教你如何将PHP页面转化成静态html页面

2013年11月08日 PHP技术文章 评论 7 条 阅读 822 views 次

首先要知道为什么要转呢,我们辛辛苦苦学着制做动态页面,但现在到头来又要转化成静态页面,这是为什么呢?

一是能减轻其服务器的负担,二是因为生成了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>";
?&gt;

这个就是核心文件了,基本上就是利用了 str_replace 的替换函数进行模板的替换,然后再写入 html 页面的,下面将整个打包的文件提供下载,提供下载的包里面引用了 conn.php,连接数据库的文件,实际上我们生成静态html的数据都是连接数据库里的数据,这里就不详细讲解了,如果有兴趣的话,可以看一下夏日php+mysql文章系统,里面几乎包含了所有生成静态的功能,且源码简单,主要是让初学者学习的。

这里有一个完整的生成实例,点击进行下载。

标签:

7 条留言  访客:7 条  博主:0 条

  1. nanana

    求懂的人教教我

  2. nanana

    不懂 到底要怎么弄啊?都急死了 好复杂的样子

  3. 恋羽

    不是我打击你,这个代码绝对没测试过

    • smiling

      测试过的,未出现什么错误。

  4. 海棠秋客

    super cache 和那个叫cos什么的插件不行吗?我就是因为wordpress不能真静态才转的zblog,现在速度提了一大块

    • smiling

      wordpress 可以使用插件真静态的,也可以使用缓存插件提高速度。

  5. 社新社

    来涨姿势的!

给我留言