如何在PHP中更改文件时获取文件的内容

时间:2011-09-09 09:58:58

标签: php string text filemtime

我对php很新。

我的计算机上有一个文本文件,可以经常更改内容。我希望在文件更改后立即获取该文件的内容并将其插入到html表单中。 我想在php上使用filemtime函数,但我不确切知道如何做到这一点。我确实放了一个do while循环:

$oldtime=filemtime($filename);
$newtime = $oldtime;
do {
    sleep (1);
    $newtime = filemtime($filename);
    echo "old: $oldtime"."<br />"; 
    echo "new: $newtime";
}
while ($newtime == $oldtime);

但这将继续执行。我也尝试做一些if语句,但这也不适用于我。

你能建议任何办法吗?如果还有其他可能有用的功能吗?

感谢您查看此主题

4 个答案:

答案 0 :(得分:1)

将您的作业切换为比较(= for ==)以更正代码中的错误。

但这里可能存在更多问题。当您想知道文件是否已更改时,文件不是存储信息的最佳位置。

理想情况下,您可以将保存在该文件中的信息放在数据库中,您可以使用触发器之类的有趣内容让您知道数据是否已更改。否则,您的解决方案将浪费时钟周期尝试无休止地测试文件以进行更改,这不是非常有效

答案 1 :(得分:0)

while中的条件在逻辑上是不正确的。你正在做作业

$newtime = $oldtime

它应该是一个比较:

$newtime == $oldtime

答案 2 :(得分:0)

它一直在执行,因为你要分配而不是比较。

此:

while ($newtime = $oldtime);

应该是这样的:

while ($newtime == $oldtime);

答案 3 :(得分:0)

经常轮询文件是一种发布更新的糟糕方式。

为什么不在HTTP请求的终点设置一个php脚本来格式化源数据(如果源文件是远程的,可选择缓存它)。或者使用inotify来触发生成静态文件?