您的位置:首页 > 编程语言 > PHP开发

PHP生成静态页大致的方法(实例)

2010-07-27 16:21 621 查看
例子:
把下面的源码保存为:news.php

<?php
//echo realpath("template/templates1.html");
//exit;
include("tohtml.php");
$tohtml = new _to_html();
$connect = mysql_connect("localhost","root","") or die("not found server");
@mysql_select_db("test");
mysql_query("set names 'gb2312'");
$result = mysql_query("select id,title,data from news",$connect);
$str = "";
while($row = mysql_fetch_array($result)){

$str.=<<<eot
<li><a href="content.php?id={$row[id]}">{$row[title]}</a>
</li>
eot;

//$str.='<li><a href="content.php?id='.$row[id].'">'.$row[title].'</a></li>';
}
mysql_close($connect);
$tohtml->_init();
$tohtml->_read_template("template/templates1.html");
$tohtml->_replace_html($str,$tohtml->temp_content);
$tohtml->_tohtml_file("news.html");
?>

类文件:把下面的代码保存为:tohtml.php

<?php
class _to_html{
private $filename;//文件的名字
public $temp_content;//读入模板内容

public function _init(){
ob_start();//初始化类,
}

//读入模板到一个字符串
public function _read_template($template){
$fp = fopen($template,"r");
$content = fread($fp,filesize(realpath($template)));
$this->temp_content = $content;
fclose($fp);
}
//替换内容
public function _replace_html($var_array,$template){
$content = str_replace('{new_list}',$var_array,$template);
echo $content;
}
//生成页面
public function _tohtml_file($filename){
if(is_file($filename)){
@unlink($filename);
}
$file = @fopen($filename,"w");
if(!is_writable($filename)){
echo "可写";
return false;
}
$content = ob_get_contents();
ob_end_clean();
if (!fwrite($file,$content)){
return false;
}
fclose ($file); //关闭指针
echo 'success!';
//return $file_cjjer_name;
}
}
?>

模块文件:template/template1.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document cc</TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>

<BODY>
<div>新闻列表</div>
<div>{new_list}</div>
</BODY>
</HTML>

sql文件内容:

-- phpMyAdmin SQL Dump
-- version 2.6.2-pl1
-- http://www.phpmyadmin.net
--
-- 主机: localhost
-- 生成日期: 2008 年 05 月 13 日 09:35
-- 服务器版本: 5.0.45
-- PHP 版本: 5.2.5
--
-- 数据库: `test`
--

-- --------------------------------------------------------

--
-- 表的结构 `news`
--

CREATE TABLE `news` (
`id` tinyint(10) NOT NULL auto_increment,
`title` varchar(200) character set utf8 collate utf8_bin NOT NULL,
`content` tinytext character set utf8 collate utf8_bin NOT NULL,
`data` date NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;

--
-- 导出表中的数据 `news`
--

INSERT INTO `news` VALUES (1, 0xe8aebee8aea1e6a8a1e5bc8fe58faae698afe4b8ba204a61766120e69eb6e69e84e5b888e58786e5a487e79a8420e28094e2809420e887b3e5b091e682a8e58fafe883bde4b880e79bb4e8bf99e6a0b7e8aea4e4b8ba, 0xe8aebee8aea1e6a8a1e5bc8f20e4b880e4b9a6e5b086e8aebee8aea1e6a8a1e5bc8fe5bc95e585a5e8bdafe4bbb6e7a4bee58cbaefbc8ce8afa5e4b9a6e79a84e4bd9ce88085e698af2045726963682047616d6d61e38081526963686172642048656c6de3808152616c7068204a6f686e736f6e20e5928c204a6f686e20566c697373696465732044657369676eefbc88e4bf97e7a7b020e2809ce59b9be4babae5b8aee2809defbc89e38082e68980e4bb8be7bb8de79a84e8aebee8aea1e6a8a1e5bc8fe8838ce5908ee79a84e6a0b8e5bf83e6a682e5bfb5e99d9ee5b8b8e7ae80e58d95e38082e7bb8fe8bf87e5a49ae5b9b4e79a84e8bdafe4bbb6, '2008-05-13');
INSERT INTO `news` VALUES (2, 0xe69c80e5889de59ca8e8aebee8aea1e6a8a1e5bc8f20e4b880e4b9a6e4b8adefbc8ce8aeb8e5a49ae8aebee8aea1e6a8a1e5bc8fe983bde9bc93e58ab1e4bdbfe794a8e69dbee695a3e880a6e59088, 0xe69c80e5889de59ca8e8aebee8aea1e6a8a1e5bc8f20e4b880e4b9a6e4b8adefbc8ce8aeb8e5a49ae8aebee8aea1e6a8a1e5bc8fe983bde9bc93e58ab1e4bdbfe794a8e69dbee695a3e880a6e59088, '2008-05-12');

以上是模拟一个生成新闻一静太页面的方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: