PHP:获取比某个时间更新的文件的内容


PHP: Getting contents of a file that is newer than a time

目前我有一个PHP脚本,它提供中等数量(200行)的文本。我想知道的是,是否有可能获得一个比某个时间最新的文本文件的内容,也许是PHP的filemtime()进行最后一次修改。

可以用这种方式获取文本文件的内容吗?

Edit:filemtime()是不合逻辑的,因为它在那个时间之后不会有任何更新。

为了清除它,我试图获取一个比某个时间更新的文本文件的所有内部内容。

示例:第1行在时间1发布,第2行在时间2发布,依此类推。我希望能够指定时间2并获取比时间2新的文件的内容。

您需要为文件中的所有条目加上时间戳。然后使用标准的fopen()/fread()函数,逐行读取内容。然后,您需要使用像preg_match()这样的正则表达式匹配来过滤时间,并将其与您要查找的时间进行比较。

如果您的意思是"文件比某个时间新的文件中的内容",那么是。你似乎已经回答了自己的问题。如果您关心修改时间,请使用filemtime(),并将其与您感兴趣的时间进行比较。

如果你的意思是"内容比某个时间更新的文件中的内容",那么不,除非有其他方法来识别文件中的哪些内容比你感兴趣的时间更新。(例如,如果文件的每一行都以指示该行何时写入的时间戳开始,你可以使用它。)。)这是因为文件系统通常不会跟踪文件中单个字节或行的时间戳。通常只有与整个文件相关联的时间戳。

您可以使用filemtime()或stat()来确定特定文件的最后一次修改。有了这些信息,您就可以确定什么是最新的文件,并相应地提取内容。

您可以确定自上次访问以来文件的哪些内容是新的,唯一的方法是将以前的内容与最新的内容进行比较,或者使用时间戳来区分内容的陈旧性。

如果有某种方法可以在文件中插入时间戳,那么这将允许您确定在给定时间点之前存在的内容。然后,您将使用正则表达式来过滤时间,以便只检索X时间之后的数据。您需要某种方法来确定X,根据您的体系结构,这可能很简单,就像用最后一次更新更新静态文件一样。然后,您将使用该值来确定哪些数据是"新的"。

第二种方法是在访问后归档文件,然后将以前的内容与当前内容进行比较,以确定哪些内容发生了更改。