2014-09-06 3 views
-2

"progress.txt"라는 파일이 있고 끊임없이 변화하는 정수가 포함되어 있습니다 (항상 상승합니다). PHP를 사용하여 초당 속도를 결정하는 방법이 있습니까?특정 숫자가 증가하는 속도 찾기

+0

나는 PHP 서버가 액세스 할 수있는 위치에있는 파일이라고 가정합니다. 정보로 정확히 무엇을하고 싶습니까? 증가율로 화면을 새로 고침 하시겠습니까? 얼마나 자주 업데이트 하시겠습니까? – Floris

+0

JavaScript로 여러 번 생각하고 있었으므로 매초마다 차이를 측정 할 수 없었습니다. 바로 옆에 계산을 제공 할 수있는 무언가가 필요합니다. – Joshua

+0

기다려 - 당신은 PHP 또는 자바 스크립트를 사용 하시겠습니까? 하나는 서버 측이고 다른 하나는 클라이언트 측이라는 것을 알고 있습니까? 이제 나는 혼란 스럽다 ... – 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 - true ...하지만 때로는 작은 해킹 문제가 필요합니다. – Floris

관련 문제