我一直致力于一个小型个人项目,涉及使用ftp连接到游戏服务器的php脚本,然后读取日志文件以将杀戮和死亡记录到数据库中,然后将其放置在我的网站上。
目前,我的计划是每天午夜运行cronjob(在午夜创建新的日志文件),然后只要当天与脚本启动的日期匹配,脚本就会循环。它打开ftp文件流,读取行,并在文件末尾记录行号。然后,它会睡1分钟。然后它将检查文件是否变得比以前记录的长度长。如果有,那么它将读取这些行。
我也有set_time_limit(0)。
以下是我认为导致问题的代码片段
$lastpos = 1;
$length = 0;
$filename = ftp........./logs_03_27_16.txt
while($daycount == (date("d") + 0)) {
sleep(60);
clearstatcache(false, $filename);
$length = filesize($filename);
if ($length < $lastpos) {
$lastpos = $length;
} elseif ($length > $lastpos) {
$file = fopen($filename, "rb");
while ($file === false) {
sleep(60);
$file = fopen($filename, "rb");
}
fseek($file, $lastpos);
while(!feof($file)) {
//Do Operations on file
}
$lastpos = ftell($file);
fclose($file);
flush();
}
}
fclose($file);
更正:现在我尝试在浏览器中运行时获得504网关超时