我对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语句,但这也不适用于我。
你能建议任何办法吗?如果还有其他可能有用的功能吗?
感谢您查看此主题
答案 0 :(得分:1)
将您的作业切换为比较(= for ==)以更正代码中的错误。
但这里可能存在更多问题。当您想知道文件是否已更改时,文件不是存储信息的最佳位置。
理想情况下,您可以将保存在该文件中的信息放在数据库中,您可以使用触发器之类的有趣内容让您知道数据是否已更改。否则,您的解决方案将浪费时钟周期尝试无休止地测试文件以进行更改,这不是非常有效
答案 1 :(得分:0)
while
中的条件在逻辑上是不正确的。你正在做作业
$newtime = $oldtime
它应该是一个比较:
$newtime == $oldtime
答案 2 :(得分:0)
它一直在执行,因为你要分配而不是比较。
此:
while ($newtime = $oldtime);
应该是这样的:
while ($newtime == $oldtime);
答案 3 :(得分:0)
经常轮询文件是一种发布更新的糟糕方式。
为什么不在HTTP请求的终点设置一个php脚本来格式化源数据(如果源文件是远程的,可选择缓存它)。或者使用inotify来触发生成静态文件?