php 每隔30分钟重新写一遍文件。未起作用。不知是怎么回事,请大家帮忙看下。代码如下:
$FileName='data/site_cache/site.php';//网站设置的缓存文件
if(((time()-filectime($FileName))/60)>30)
{SitePrintFile($FileName);}//时间差超过30分钟将从新写文件
//写文件的函数
function SitePrintFile($strFileName)
{
$exec="select * from Site where ID=1";
$result=mysql_query($exec);
if($rs=mysql_fetch_object($result)){
$FileBody="<?php\r\n";
$FileBody=$FileBody."\$Site=array(\r\n";
$FileBody=$FileBody."'BBSName'=>'".$rs->BBSName."',\r\n";
$FileBody=$FileBody."'BBSURL'=>'".$rs->BBSURL."',\r\n";
$FileBody=$FileBody."'WebName'=>'".$rs->WebName."',\r\n";
$FileBody=$FileBody."'WebURL'=>'".$rs->WebURL."',\r\n";
$FileBody=$FileBody."'ICP'=>'".$rs->ICP."',\r\n";
$FileBody=$FileBody."'AdminEMail'=>'".$rs->AdminEMail."',\r\n";
$FileBody=$FileBody."'Skin'=>'".$rs->Skin."',\r\n";
$FileBody=$FileBody."'BBSOpenRem'=>'".$rs->BBSOpenRem."',\r\n";
$FileBody=$FileBody.");\r\n";
}
$OpenFile=fopen($strFileName, 'w+');
fwrite($OpenFile, $FileBody);
fclose($OpenFile);
}
我的意思就是刷新后也不起作用,不过你的两个字眼提醒了我,手册上好像说哪个时间缓存了,不知与这有没有关系。
---------------------------------------------------------
但filemtime函数我试用的时候看到,每刷新一次,它的值都在变,属正常吗?貌似不应该啊。而且它的值是1970 年 1 月 1 日 00:00:00到当前时间的秒数。
set_time_limit(0);//程序最长执行时间无限制
while(true) {
...//写文件代码段
sleep(60*30);
}
程序提两点小建议
1.生成写入文件的数据时,可以使用mixed var_export ( mixed $expression [, bool $return = false ] )
2. $FileBody=$FileBody."'BBSName'=>'".$rs->BBSName."',\r\n";
<=>
$FileBody .= "'BBSName'=>'".$rs->BBSName."',\r\n";
如果你需要得到修改的时间,用filemtime函数
set_time_limit(0);//程序最长执行时间无限制
while(true)
{
...//写文件代码段
sleep(60*30);
}
程序提两点小建议
1.生成写入文件的数据时,可以使用mixed
var_export
(
mixed
$expression
[,
bool
$return
=
false
]
)
2.
$FileBody=$FileBody."'BBSName'=>'".$rs->BBSName."',\r\n";
<=>
$FileBody
.=
"'BBSName'=>'".$rs->BBSName."',\r\n";