强烈推荐! 静态新闻列表自动生成程序
<?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?
|