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文件。模板中需要替换的地方使用{}留着标记。