if
(
time
()
-
filemtime
(
'
index.cache
'
)
>
2
*
60
)
//
如果缓存文件为两分钟前更新,则重新生成缓存
@
ob_start
(
'
output
'
);
//
使用output函数捕捉正常输出并缓存
else
//
否则直接输出缓存页面
{
@
ob_start
(
'
ob_gzhandler
'
);
readfile
(
'
index.cache
'
);
exit
;
}
function
output(
$buffer
)
{
$scriptname
=
$_SERVER
[
'
SCRIPT_FILENAME
'
];
if
(
$scriptname
==
''
)
$scriptname
=
$_SERVER
[
'
PATH_TRANSLATED
'
];
@
chdir
(
dirname
(
$scriptname
));
if
(
$fp
=
@
fopen
(
'
index.cache
'
,
'
w
'
))
{
@
flock
(
$fp
,
LOCK_EX);
@
fwrite
(
$fp
,
$buffer
);
@
fclose
(
$fp
);
}
if
(
function_exists
(
'
gzencode
'
)
&&
ereg
(
'
gzip
'
,
$_SERVER
[
'
HTTP_ACCEPT_ENCODING
'
]))
{
header
(
"
Content-Encoding: gzip
"
);
return
@
gzencode
(
$buffer
,
9
,
FORCE_GZIP);
}
else
return
$buffer
;
}