利用PHP生成静态HTML页面的好处很多:
1.静态页面不需要Web服务器解释执行,用户打开网页的速度会快些;
2.打开静态页面时,Web服务器不需要访问数据库,减轻了对数据库访问的压力;
3.静态HTML页面对搜索引擎更加友好,使网站在搜索引擎中的排名能够上升。
原理:利用fopen()方法创建文本文件,再用fwrite()方法向文件中写入符合HTML格式的字符串。
因此,用户在后台添加一条新闻后,PHP程序一方面将这条新闻作为一条记录添加到数据库中;另一方面根据这条新闻创建一个静态的HTML页面。
创建HTML页面的过程:首先制作一个新闻页面的模板,然后将这条新闻的各个字段替换掉模板页中的标志内容。最后将替换后的模板页用fwrite()方法写入到创建的文件中。
1.数据库的设计
CREATE TABLE `news` (id INT PRIMARY KEY AUTO_INCREMENT ,title VARCHAR( 30 ) ,content TEXT,author VARCHAR( 200 ) ,TIME DATETIME,bigclass VARCHAR( 200 ) ,filepath VARCHAR( 100 )) ENGINE = INNODB DEFAULT CHARSET = utf8
可以看出,与普通的news表相比,生成静态页面的新闻系统主要多了一个filepath字段,用于将生成的HTML文件的文件名和路径名保存到news表中,便于在新闻表页能建立到这些HTML文件的链接。
2.新闻模板页的制作
在数据库中再建一个表moban,用来保存模板页的HTML代码,之所以要将模板页的代码保存到数据库中,是为了方便能够通过新闻系统后台对模板页的代码进行修改,还能在MOBAN表中保存多个模板页,让用户从后台发布新闻时可以选择任意一套模板。
CREATE TABLE `moban` (id INT PRIMARY KEY AUTO_INCREMENT ,html TEXT) ENGINE = INNODB DEFAULT CHARSET = utf8
新闻添加页面的程序制作
1.制作新闻添加的前台页面addnews.php
添加页面 添加新闻页面
2.保存新闻到news表的程序(add.php)
alert('添加失败');location.href='addnews.php';"; } }?>
3.新闻管理后台系统admin.php
该程序每条新闻的标题都是连接到生成的静态HTML文件的URL上($row['filepath']保存了静态文件的URL地址),这样用户才能通过链接打开这些HTML文件。
4.新闻修改页面的制作
(1)获取admin.php页传过来的ID值,根据ID读取原来的记录,显示在该页的表单中供用户修改。
(2)当用户提交修改页面之后,使用用户提交的信息更新news表中对应的记录。
(3)使用用户提交的信息替换模板页中的相应字符,再重新生成同名的HTML文件。
alert('修改成功');location.href='admin.php'"; }else{ echo ""; } } } $sql = "select * from news where id = $id"; $result = mysql_query($sql)or die("操作数据库失败".mysql_errno()); $rows = mysql_fetch_assoc($result); ?>新闻修改页面 新闻修改页面
5.页面的删除系统del.php
该页面的删除也分为两个部分,其一是将这条新闻的记录从news表中删除;其二是删除该新闻对应的静态HTML文件,这是必要的,否则浏览者还可以通过直接输入html文件的URL访问到该新闻页面。
"."&&$f<>"..") //如果目录中还有其他文件 $n++; } closedir(); if($n==0) //目录中已经没有任何文件 rmdir($folderpath); //删除该目录 $sql="delete from news where id=$id"; //删除数据表中的记录 if(mysql_query($sql)) echo ""; else echo "";?>