您可能需要先检查文件修改时间以查看是否需要重新加载日志文件。您可以filemtime
为此使用 -function。
此外,您可以使用file_get_contents
-function 使用偏移量从某个点读取文件。
编辑:那么,它是如何工作的?
假设您已将上次修改时间存储在会话变量中$_SESSION['log_lastmod']
,并将最近的偏移量存储在$_SESSION['log_offset']
.
session_start();
// First, check if the variables exist. If not, create them so that the entire log is read.
if (!isset($_SESSION['log_lastmod']) && !isset($_SESSION['log_offset'])) {
$_SESSION['log_lastmod'] = 0;
$_SESSION['log_offset'] = 0;
}
if (filemtime('log.txt') > $_SESSION['log_lastmod']) {
// read file from offset
$newcontent = file_get_contents('log.txt', NULL, NULL, $_SESSION['log_offset']);
// set new offset (add newly read characters to last offset)
$_SESSION['log_offset'] += strlen($newcontent);
// set new lastmod-time
$_SESSION['log_lastmod'] = filemtime('log.txt');
// manipulate $newcontent here to what you want it to show
} else {
// put whatever should be returned to the client if there are no updates here
}