PHP生成静态网页HTML

PHP生成静态网页HTML方法分为生成伪静态HTML和生成真正静态的HTML.

伪静态可以使用.htaccess重定向来实现:

RewriteEngine on
RewriteRule ([0-9]{1,}).html$ detail.php?nid=$1

上面表示遇到“数字+html”,页面跳转到“detail.php”,然后把括号里的参数给“$1”。比如99.html就会跳转到datail.php?nid=99,这样就实现了伪静态html页面了,不是真正的静态页面。

真正的静态html,是使用php来生成html页面。对于那种网站访问量大的大站,一般采用这种方式。 下面介绍一种简单的方法的例子,两个文件:add.php和model.php

model.php

此新闻的标题:{title} 
此新闻的内容:{content} 

add.php:

<?php 
 require_once("conn.php"); //引用conn.php,连接数据库
 $title="我是标题";
 $content="我是内容"; //获得表单变量 
 //以下建立一文本文档,其值自动计数
 $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);
//利用上面自动计数的值获得HTML的路径$path
 $houzui=".php"; 
 $htmlfile ="archives";
 if (!is_dir($htmlfile)) //先判断是否已经创建了此目录!无,则先创建此目录
{
mkdir($htmlfile);
}
 $path=$htmlfile."/".$num.$houzui;
 //这样形成的路径是自动增长的,如1.html,2.html,3.html……添加一条新闻便自动加上1
 //以下用SQL语句添加数据至表 news
 $sql="insert into news (title,content,path) values (‘".$title."’,’".$content."’,’".$path."’)";
 $query=mysql_query($sql);
 //以下为关键之处,把从表单获得的数据替换模板中的{title},{content}标记
 $fp=fopen("model.php","r"); //只读打开模板
 $str=fread($fp,filesize("model.php"));//读取模板中内容
 $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 "查看刚才添加的新闻"; 
?>

add.php首先生成count文件,主要用来计数,以后每生成一个html,就加1.然后把生成的html文件路径,文件名称,内容存入数据库。之后最主要的是,使用模板生成html文件。模板中需要替换的地方使用{}留着标记。

发表回复

您可以匿名评论,只有「评论」 是必填项,其他的都可以不填。如果填写电子邮箱地址,有人回复时您将收到邮件通知。