现在的位置: 首页 > 综合 > 正文

php生成静态页

2013年09月05日 ⁄ 综合 ⁄ 共 2225字 ⁄ 字号 评论关闭

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.csdn.net/mayongzhan - 马永占,myz,mayongzhan
 
php生成静态页

 

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

抱歉!评论已关闭.