php生成静态页(收2)

两个文件: 
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 
--   
-- 主机: 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`

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值