【问题标题】:Know if a file from a directory has been modified知道目录中的文件是否已被修改
【发布时间】:2012-11-14 18:42:48
【问题描述】:

大家好……我目前是一名系统广告助理。我只是想知道我如何才能知道目录(及其子目录)中的文件已被修改..我需要将每个 php 代码放在数据库中吗?是否有可能知道文件的哪一部分已被修改?谢谢。请帮忙。

【问题讨论】:

  • 您可以使用类似 filesystemwatcher 的工具来捕获更新,或者将 md5 文件哈希存储在数据库中并不断爬取文件夹:stackoverflow.com/questions/540339/…
  • 在文件 modify.hidden 值(如日期时间和文件名)时将隐藏值传递给您的数据库。

标签: php directory fopen fread


【解决方案1】:

不确定您所说的数据库引用是什么意思...但一般来说,如果您知道文件的创建日期,您可以检查 filemtime 是否与此不同。但是,我对使用文件修改时间有点怀疑;我发现了一些它们具有误导性的实例,因此请谨慎对待。

除了拥有文件的先前版本(通过备份或 RCS)之外,我想不出你会如何看到修改了哪些部分。

【讨论】:

  • 现在我找到了答案。无论如何,它是通过 bash 脚本编写的..thnx 的帮助。
  • 您介意将您找到的答案发布为评论或答案吗?有人可能有类似的问题并偶然发现了这个线程,这对他们来说可能非常有价值。
【解决方案2】:

既然你是系统广告助理,我想你也可以使用 python。 如果是这样,请考虑使用watchdog 库。我认为它非常适合。

当您使用它时,您还可以通过 python、linux/unix diff 命令以编程方式使用它。 为此,您还可以查看 python sh 模块,它使您能够从您的 python 代码中调用 diff

php 对于您的系统管理员需求来说并不是完美的解决方案。 而且python可能比php更容易学。

【讨论】:

    【解决方案3】:

    使用filemtime(),这将为您提供文件最后一次更改的时间。

    但是,只要您没有运行版本控制系统,您就无法知道任何差异。

    【讨论】:

      猜你喜欢
      • 2014-12-26
      • 2010-12-08
      • 2015-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-16
      • 1970-01-01
      • 2017-09-08
      相关资源
      最近更新 更多