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`

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章