前言:
目前网络上好多网站的新闻发布系统都采用了动态服务器技术生成静态HTML的做法,这样做的好处是:一是能减轻其服务器的负担,二是因为生成了HTML静态页面,所以其网站被搜索引擎搜索到的机率更大一些。我曾经使用这一动态技术来构建网站新闻发布系统,其原理也就是应用了PHP生成HTML静态页面的技术,相关平台是XPSp2+php4.32+mysql,因此,在这里,想简单地谈一下这种做法的思路。这篇文章适合于对PHP+MYSQL操作,SQL语句以及网页有点基础的朋友,如果您是一个从头开始学的朋友,那么请先打好基础吧!到这里就不用往下看了。如果您都符合上述条件的话,那么恭喜您,请接着往下看。但是,在具体动手构建之前,您还要做好以下几点准备工作。
一、具备本地调试PHP的功能
在WINDOWSXP操作系统下,你可以到网上下载一个PHP+MYSQL+APHCHE的服务器套装,下载完后默认安装即可,这样您就具备了在本地测试PHP的功能了,省去了很多手动配置的麻烦,怎么样,简单吧,OK,这仅仅只是第一步。
二、构思新闻发布系统所具备的功能
首页的新闻发布往往是通过后台更新的,后台的更新无非是由添加、编辑、删除数据等基本的功能所实现的。在这里,你可以使用软件来构建你的想要的后台界面,其功能的实现当然是要用到PHP喽。这一步建议您先想好新闻发布系统要有的功能。在这里,如何用PHP添加、编辑、删除数据就不再重复,因为重点是如何在这基础上生成静态技术。
# p # 分页标题 # e #
require_once(“conn.php”);//引用conn.php,连接数据库
$title=$_POST[“title”];
$content=$_POST[“content”];//获得表单变量
well高级语言主要是相对于汇编语言而言,并不是特指某一种具体的语言,而是包括了很多编程语言,如流行的VB、VC、FoxPro、Delphi等,这些语言的语法、命令格式都各不相同。 像最简单的编程语言PASCAL语言也属于高级语言。高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可将它们分为两类:
1)解释类:执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言[1] 的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这种方式比较灵活,可以动态地调整、修改应用程序。
2)编译类:编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(* .OBJ)才能执行,只有目标文件而没有源代码,修改很不方便。大多数的编程语言都是编译型的,例如Visual C++、Visual Foxpro、Delphi等。
//以下建立一文本文档,其值自动计数
$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);
[Ctrl+A全部选择然后拷贝]
//利用上面自动计数的值获得HTML的路径$path
$houzui=”.html”;
$path=$num.$houzui;
//这样形成的路径是自动增长的,如1.html,2.html,3.html……….添加一条新闻便自动加上1
//以下用SQL语句添加数据至表news
$sql=”insertintonews(title,content,path)values(‘”.$title.”’,’”.$content.”’,’”.$path.”’)”;
$query=mysql_query($sql);
//以下为关键之处,把从表单获得的数据替换模板中的{title},{content}标记$fp=fopen(“model.htm”,”r”)//只读打开模板
$str=fread($fp,filesize(“mode.htm”));//读取模板中内容
$str=str_replace(“{title}”,$title,$str);
$str=str_replace(“{content}”,$content,$str);//替换内容
fclose($fp);
$handle=fopen($path,”w”);//写入方式打开新闻路径
fwrite($handle,$str);//把刚才替换的内容写进生成的HTML文件
fclose($handle);
代码拷贝框
[Ctrl+A全部选择然后拷贝]
//收尾工作:
echo“<ahref=$pathtarget=_blank style=”margin: 0px; padding: 0px;”>查看刚才添加的新闻”;
代码拷贝框
[Ctrl+A全部选择然后拷贝]
OK,整个生成HTML的示例源码就到这里,其关键是用了替换的方法。
$str=str_replace(“{被替换的内容}”,$替换的内容,$str);
因此,总结一下以上的做法:先设计好新闻模板,把需要被替换的内容用{}放到模板中相应的位置,然后设计表单,再是最后的表单处理程序,把从表单中获取的变量替换模板中相应的内容即可,这样每次都会生成不同的HTML;如果需要修改HTML的内容也是一样的,获得修改后的表单内容后,先用update语句更新数据库,再重新替换一下模板中的内容即可;删除的话,先delete表中要删除的内容,再用unlink($path)来删除HTML的物理文件即可。