找到一定数量增加的速度

时间:2014-09-06 04:06:51

标签: php

我有一个名为" progress.txt"的文件,它包含一个不断变化的整数(总是在上升)。有没有办法使用PHP来确定它每秒上升的速度?

1 个答案:

答案 0 :(得分:1)

我想知道你是否会发现以下php代码有用:

<?php

$fileName="progress.txt";
$delay = 100;
error_reporting(E_ALL ^ E_WARNING);

$first = file_get_contents($fileName);
$second = $first;
while($second == $first || strlen($second)==0) {
  $second = file_get_contents($fileName);
  $t1 = microtime(TRUE);
  usleep($delay);
}
$third = $second;
while($third == $second || strlen($third)==0) {
  $third = file_get_contents($fileName);
  $t2 = microtime(TRUE);
  usleep($delay);
}

echo "rate of change is ".($third - $second) / ($t2 - $t1)." per second\n";
?>

这会读取文件(跳过任何警告),直到它读取了三个不同的值。它忽略的第一个值(你不知道它有多长时间),然后它找到第二次和第三次更改文件的时间。它报告了这些值之间的差异除以更改发生所需的时间。

注意 - 根据您可以容忍的时间分辨率,您需要在每个while循环中放置(小)延迟,以防止代码运行的线程完全锁定。这就是usleep电话的目的。您可能希望尝试使用$delay参数来查看哪种方法最适合您。