|
两个文件: Addnews.Php Template.html 还有一个数据库
首先建立数据库,然后调用addnews.Php,然后可以得到结果.
得到的html文件的名字是由当前日期加上标题构成,如果需要用唯一的东西来生成html的话,最好使用sql中的自增的id,或者自建一个当天的临时数据,来联合生成html文件名.
本程序使用了Php中 数据库操作,文件操作等知识.曾见过有牛人用ob_start写,利用了缓冲,方法也不错. Addnews.Php程序如下: <?Php $conn=mysql_connect(’localhost’,’root’,’myz’); if (mysqli_connect_errno()) { echo mysqli_connect_error(); exit; } mysql_select_db(’myztohtml’,$conn); mysql_query("SET NAMES ’gbk’");
if (isset($_POST[’submit’])) { $title=$_POST[’title’]; $content=$_POST[’content’]; $time=date(’Ymd’); $query = "INSERT INTO news (title,content,time) VALUES (’".$title."’,’".$content."’,’".$time."’)"; $result=mysql_query($query); if ($result) { $filename=$_SERVER[’DOCUMENT_ROOT’].dirname($_SERVER[’Php_SELF’]).’/’.$time.$title.’.html’; $fp=fopen($filename,’w’); $filenameT=$_SERVER[’DOCUMENT_ROOT’].dirname($_SERVER[’Php_SELF’]).’/template.html’; $fpT=fopen($filenameT,’r’); $str=fread($fpT,filesize($filenameT)); $str=str_replace(’{title}’,$title,$str); $str=str_replace(’{content}’,$content,$str); fwrite($fp,$str); fclose($fp); fclose($fpT); echo ’ok! ’.’view the htmlnews output:<a href="’.$time.$title.’.html">’.$title.’</a>’; } } ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gbk" /> <title></title> </head> <body> <form method="post" action="addnews.Php"> 新闻标题:<input type="text" name="title"><br /> 新闻内容:<textarea name="content"></textarea><br /> <input type="submit" name="submit" value="提交"> </form> </body> </html>
Template.html如下: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gbk" /> <title>{title}</title> </head> <body> {content} </body> </html>
数据库如下: -- PhpMyAdmin SQL Dump -- version 2.10.1 -- http://www.Phpmyadmin.Net -- -- 主机: localhost -- 生成日期: 2007 年 07 月 18 日 16:55 -- 服务器版本: 5.0.27 -- Php 版本: 5.2.1
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
-- -- 数据库: `myztohtml` --
-- --------------------------------------------------------
-- -- 表的结构 `news` --
CREATE TABLE `news` ( `id` mediumint(9) NOT NULL auto_increment COMMENT ’编号’, `title` varchar(50) NOT NULL COMMENT ’标题’, `content` varchar(200) NOT NULL COMMENT ’内容’, `time` date NOT NULL COMMENT ’日期’, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=gbk AUTO_INCREMENT=1 ;
-- 导出表中的数据 `news`
|