PHP学会网 php培训网 PHP暑期培训 PHP寒假培训 PHP假期培训 » 入门和基础知识 » 强烈推荐! 静态新闻列表自动生成程序
本页主题: 强烈推荐! 静态新闻列表自动生成程序 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

自由的龙

该用户目前不在线
级别: 中级程序员
精华: 1
发帖: 1264
威望: 1267 点
金钱: 12660 PYMB
贡献值: 0 点
在线时间:0(小时)
注册时间:2006-04-16
最后登录:2006-06-27

强烈推荐! 静态新闻列表自动生成程序


<?php
/*
版权所有:日出东方XP
2004.7.17
*/
  function CreateShtml()
  {
    ob_start(array("callback_CreateShtml","callback_GoToShtml"));
  }

  function callback_CreateShtml($buffer)
  {
    $page = intval(@$_REQUEST["page"]);
    $fileName = $_SERVER['DOCUMENT_ROOT'] . dirname($_SERVER['PHP_SELF']) . "/" . basename($_SERVER['PHP_SELF'],".php") . ($page==0 ? "" : "_" . strval($page)) . ".htm";
    $fp = fopen($fileName,"wb");
    fwrite($fp,$buffer);
    fclose($fp);
    return $buffer;
  }

  function callback_GoToShtml($buffer)
  {
    $page = intval(@$_REQUEST["page"]);
    $fileName = basename($_SERVER['PHP_SELF'],".php") . ($page==0 ? "" : "_" . strval($page)) . ".htm";
    header("location:" . $fileName);
    return $buffer;
  }

  function GoToShtml()
  {
    $page = intval(@$_REQUEST["page"]);
    $fileName = basename($_SERVER['PHP_SELF'],".php") . ($page==0 ? "" : "_" . strval($page)) . ".htm";
    if(file_exists($fileName))
        header("location:" . $fileName);
  }
 
  function DeleteShtml($fileName=NULL)
  {
    if(is_null($fileName))
        $fileName = $_SERVER['DOCUMENT_ROOT'] . $_SERVER['PHP_SELF'];
       
    if($fileName[0]=="/")
        $fileName = $_SERVER['DOCUMENT_ROOT'] . $fileName;

    $path = dirname($fileName);
    $dir = dir($path);
    $patten = "/^" . basename($fileName, ".php") . "(_[0-9]+)?.htm/";
    while(($entry = $dir->read())!==false)
    {
        if(is_file($path . "/" .$entry) && preg_match($patten,$entry))
          unlink ($path . "/" . $entry);
    }
  }
?>
使用说明:[/COLOR]

注意:
1.表示第几页的变量一定要为 page [/COLOR]
,如果不适用您的情况清自己改。
2.假定产生新闻类表的页面为 /news/list.php
在list.php 内嵌入本函数,在进行数据库查询以前 && 有内容输出以前,调用GoToShtml(); CreateShtml(); ,如果数据库查询以后就失去了意义。
建议放在程序的开始部分。[/COLOR]
3.当执行完新闻更新后调用 DeleteShtml("/news/list.php"); 参数为产生静态页面的文件名。
这样就会删除 /news/list.php 所生成的静态文件。如:list.htm ,list_1.htm, list_2.htm ... ,用户就会立刻看到新的内容。

4. 我很想知道CACHE 是什么![/COLOR]
我这么做是不是CACHE?
顶端 Posted: 2006-04-16 19:21 | [楼 主]
PHP学会网 php培训网 PHP暑期培训 PHP寒假培训 PHP假期培训 » 入门和基础知识

时:01-08 20:33 Copyright © 2006 phpwhy.com 权
ICP05060669

曳息 -