当前位置: 首页 > 图文教程 > 网络编程 > PHP > 用缓存实现静态页面的测试

PHP
实现树状结构的两种方法
PHP4(windows版本)中的COM函数
多文件上传的例子
PHP中的超全局变量
PHP树的代码,可以嵌套任意层
强烈推荐:php.ini中文版(1)
强烈推荐:php.ini中文版(2)
国内php原创论坛
PHP&MYSQL服务器配置说明
Apache设置虚拟WEB
提升PHP执行速度全攻略
Mysql的常用命令
用Apache反向代理设置对外的WWW和文件服务器
php.ini中文版
ASP知识讲座四
一个用于MySQL的PHP XML类
phpmyadmin操作流程
PHP4中实现动态代理
把PHP安装为Apache DSO
正则表达式语法

PHP 中的 用缓存实现静态页面的测试


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 288 ::
收藏到网摘: n/a

<?php
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);
}
}

CreateShtml();
echo "这是静态生成的页面!$page";
GoToShtml();
DeleteShtml();
?>