php 每隔30分钟重新写一遍文件。未起作用。

php每隔30分钟重新写一遍文件。未起作用。不知是怎么回事,请大家帮忙看下。代码如下:$FileName='data/site_cache/site.php';//网站设... 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到当前时间的秒数。
展开
 我来答
tzb12qaqaqa
2009-12-13 · 超过33用户采纳过TA的回答
知道小有建树答主
回答量:90
采纳率:0%
帮助的人:99.6万
展开全部
<?php
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";

参考资料: http://cn.php.net/manual/en/function.var-export.php

springfieldx
2009-12-12 · TA获得超过338个赞
知道小有建树答主
回答量:302
采纳率:0%
帮助的人:330万
展开全部
php程序不会自己执行的,得需要每隔一段时间访问一下这个页面激发程序才可以。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
刑慕诗Lw
2009-12-12 · TA获得超过356个赞
知道小有建树答主
回答量:118
采纳率:100%
帮助的人:81.8万
展开全部
不用使用filectime函数,这个函数在win32的系统好像得到的事创建的时间。

如果你需要得到修改的时间,用filemtime函数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
箕广折含玉
2019-06-29 · TA获得超过3599个赞
知道大有可为答主
回答量:3210
采纳率:34%
帮助的人:173万
展开全部
<?php
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";
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式