2014-09-06 3 views
-2

У меня есть файл с именем «progress.txt», и он содержит постоянно меняющееся целое число (всегда растет). Есть ли способ использовать PHP для определения скорости, с которой она растет в секунду?Поиск скорости, с которой увеличивается определенное число

+0

Я предполагаю, что файл в том месте, к которому может обратиться ваш php-сервер. Что именно вы хотите делать с информацией? Обновите экран со скоростью увеличения? Как часто вы хотите это обновить? – Floris

+0

Я думал несколько раз в секунду с JavaScript, поэтому я не могу измерить разницу в числе каждую секунду. Мне нужно что-то, что могло бы обеспечить вычисления, которые можно было бы совершить сразу. – Joshua

+0

wait - хотите ли вы использовать php или javascript? Вы понимаете, что одна сторона сервера, а другая - клиентская, верно? Теперь я смущен ... – Floris

ответ

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, чтобы узнать, что лучше всего подходит для вас.

+2

Вы потратили больше усилий, чем на вопрос о проблеме. –

+0

@EdHeal - правда ... Но иногда мне просто нужен небольшой хакерский вызов. – Floris

Смежные вопросы