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到当前时间的秒数。 展开
$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到当前时间的秒数。 展开
展开全部
<?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";
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
展开全部
php程序不会自己执行的,得需要每隔一段时间访问一下这个页面激发程序才可以。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不用使用filectime函数,这个函数在win32的系统好像得到的事创建的时间。
如果你需要得到修改的时间,用filemtime函数
如果你需要得到修改的时间,用filemtime函数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<?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";
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";
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询