amp mysq 深入浅出php_谈PHP生成静态页面

920-433 HP0-X02

三、解决方案

思路:开启 ob_start缓冲,当已经调出数据的时候获取 ob_get_contents,然后生成静态页,ob_end_clean清除缓冲.ok,就这么来,来看一个例子(php+mysql的结合):

创建数据库:

CREATE TABLE `bihtml` (

`id` int(11) NOT NULL auto_increment,

`szdtitle` varchar(16) NOT NULL,

`szdcontent` text NOT NULL,

PRIMARY KEY  (`id`)

) TYPE=MyISAM;

获取当前的ID,并导入模板:

ob_start();

$id=_POST['id']

if(!isset($id)&&is_integer($id))

{

@$db=new mysqli('localhost','root','admin','bihtml');

$result=$db->fetch_one_array("select  * from szd_bi where id='$id'");

if(!empty($result))

{

$tmp->assign(array(

"Szdtitle",htmlspecialchars($result['titles']),

"Szdcontent",$result['titles']));

}

$tpl->display('default_1.tpl');

$this_my_f= ob_get_contents(); //此处关键

ob_end_clean();

$filename = "$id.html";

if(tohtmlfile_cjjer($filename,$this_my_f))

echo "生成成功 $filename";

else

echo "生成识别";

}

}

//把生成文件的过程写出函数

function tohtmlfile_cjjer($file_cjjer_name,$file_cjjer_content)

{

if (is_file ($file_cjjer_name)){

@unlink ($file_cjjer_name);

}

$cjjer_handle = fopen ($file_cjjer_name,"w");

if (!is_writable ($file_cjjer_name)){

return false;

}

if (!fwrite ($cjjer_handle,$file_cjjer_content)){

return false;

}

fclose ($cjjer_handle); //关闭指针

return $file_cjjer_name;

}

四、说明事项

1: 一般建议管理员添加数据的时候就生成静态页面,可以考虑记录生成的文件名次和路径.

2: php主要是    ob_starts()和 ob_get_contents,生成静态页面的时候很有用,当然也可以考虑调出数据库直接替换模板里面的变量也是可以的.

3: 主要的模板使用smarty,phplib都是可以的,smarty使用比较简易.

posted on 2007-10-17 10:04 php一道 阅读(426) 评论(1)  编辑 收藏 引用 网摘

d19fb1ce9559434ccb7dfffb396a3862.png

FeedBack:

# re: 谈PHP生成静态页面 2007-10-23 16:20 林超旗

如果带参数呢比如生成 news.php?id=10这个页面的静态页  回复  更多评论

Copyright ©2021 php一道 Powered by: 博客园 模板提供:沪江博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值