2011-12-13 4 views
1

로그를 .txt 파일에 저장하고 정기적으로 (몇 초마다) 업데이트하는 프로그램이 있습니다.파일 크기가 변경 될 때 페이지 새로 고침

내 PHP 스크립트가이 .txt의 파일 크기를 확인하고, 변경된 경우 페이지를 새로 고침하고 싶습니다.

이 내가 예상 한대로 작동하지 않는, 쓴 것입니다 : 브라우저 리디렉션 또는 한 번에 영향을주지 않습니다 전송 새로 고침 사용

$filename = "log.txt"; 

if (file_exists($filename)) { 
    $dfile = filesize($filename); 
} 
echo $dfile; 

$c=0; 
while($c < 10) { 
if ($dfile !== filesize($filename)) {header("Location:http://127.0.0.1/parser.php");} 
else{usleep(2000000);} 
} 
+1

에코 후 헤더를하는 중 ... 이상하게 보입니다. 실제 출력을 보내기 전에 header()를 호출해야합니다. – macjohn

+0

javascript, AJAX 또는 setTimeout ('window.location.refresh()', miliseconds). – Catalin

답변

1

시드 말라 니 (Sid Malani)가 말했듯이, 확실히 당신은 AJAX를 사용해야합니다. 나는 일종의 비동기 폴링없이이 일을 할 수 있을지 의심 스럽다. 적어도 브라우저 환경에서 (브라우저 작동 방식 때문에), 콘솔에서는 전혀 어려울 수 없습니다.

이제 가장 간단한 방법은 로그 파일이 실제로 변경되었는지 여부에 관계없이 HTML 메타 새로 고침으로 페이지를 새로 고치는 것입니다. 당신이 로그 어쨌든 몇 초마다 업데이트하는 것을 알고 있다면 그들이 크기를 변경하거나하지 않은 경우 당신은 그들이 어쨌든이 내기 수 있기 때문에

<head> 
    <meta http-equiv="refresh" content="20" /> 
</head> 

, 그것은 정말 중요하지 않습니다.

2

헤더 정보 또는 메타 데이터입니다. 브라우저는이를 한 페이지로 읽은 다음 나머지는 무시하기 때문입니다.

대신 ajax를 사용하여 백그라운드에서 PHP를 호출하고 파일 크기 변경을 확인한 다음 브라우저 새로 고침을 호출해야합니다.

관련 문제