php生成静态页面的简单示例
发布新闻,实现新闻页面静态化,真静态
add.php
<html>
<head>添加新闻</head>
<body>
<form method="post" action="doadd.php">
新闻标题:<input type="text" name="title" size="100"><br>
新闻内容:<textarea name="content" cols="100" rows="25"></textarea><br>
<input type="submit" name="提交">
</form>
</body>
</html>
config.php
<?php
define("HOST", "localhost");
define("USER", "justfan");
define("PWD", "justfan");
define("DB", "justfanDB");
define("PORT", "3360");
?>
DB_class.php
<?php
class DB
{
private $host = '';
private $uname = '';
private $pwd = '';
private $port = '';
private $db = '';
public static $instance = null;
private function __construct($host , $uname , $pwd , $port , $db)
{
$this->host = $host;
$this->uname = $uname;
$this->port = $port;
$this->pwd = $pwd;
$this->db = $db;
mysql_connect($host,$uname,$pwd);
mysql_select_db($this->db);
}
public static function Instance()
{
if(Db::$instance==null){
include 'config.php';
return Db::$instance = new DB(HOST, USER, PWD, PORT, DB);
}
else
return Db::$instance;
}
public function query($sql)
{
mysql_query("SET NAMES UTF8");
$query = mysql_query($sql) or die($sql." error");
if(!$query) return false;
else return $query;
}
public function getAll($sql)
{
$query = $this->query($sql);
if($query)
{
while($ret = mysql_fetch_assoc($query))
{
$result[] = $ret;
}
}
return $result;
}
}
?>
doadd.php
<?php
include 'DB_class.php';
$db = DB::Instance();
$title=$_POST["title"];
$content=$_POST["content"];
$num = uniqid();
$houzui=".html";
$filename=date('Ymd').'/'.$num.$houzui;
$sql="insert into news(title,content,path) values ('{$title}' , '{$content}' , '{$filename}')";
$query = $db->query($sql);
$fp=fopen("model.htm","r");
$str=fread($fp,filesize("model.htm"));
$str=str_replace("{title}",$title,$str);
$str=str_replace("{content}",$content,$str);
fclose($fp);
$dir = dirname($filename);
if(!is_dir($dir)){
mkdir($dir);
}
$handle=fopen($filename,"w");
fwrite($handle,$str);
fclose($handle);
echo "<a href={$filename} target=_blank>查看刚才添加的新闻</a>";
echo "<a href='add.php'>添加新闻</a>";
?>
model.htm
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="//code.jquery.com/jquery-1.10.2.min.js"></script>
<script type="text/javascript" src="../bootstrap/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="../bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="../bootstrap/css/common.css">
<title>{title}</title>
</head>
<body>
<div class="container">
<div class="jumbotron">
<h1>{title}</h1>
<p>{content}</p>
</div>
</div>
</body>
</html>