我的php腳本似乎有些不對,但我不知道它是什麼。似乎錯誤的唯一可能的事情是與緩存有關,但我不確定。這裏是我的劇本,我會告訴你發生了什麼下面的代碼:php無限循環和彗星?
<?php
set_time_limit(0);
header('Content-Type:text/event-stream');
$prevmod=$lastmod=filemtime('chattext.txt');
function waitformod(){
global $lastmod;
global $prevmod;
while($prevmod==$lastmod){
usleep(100000);
clearstatcache();
$lastmod=filemtime('chattext.txt');
}
echo 'data:'.file_get_contents('chattext.txt').PHP_EOL.PHP_EOL;
flush();
$prevmod=$lastmod;
}
while(true){
waitformod();
}
?>
這應該使用JavaScript的EventSource使用,每當它被修改發送chattext.txt的內容。但是,該文件不輸出任何內容。我認爲這是因爲無限循環。有沒有什麼辦法解決這一問題?
請澄清... – Petah 2012-07-30 05:10:19
發生這種情況:1)我修改文件2)PHP文件發送chattext.txt,因爲它是在我修改文件之前。這是否更有意義? – Markasoftware 2012-07-30 05:12:15
你的意思是你使用'global'這個事實的一部分? – Shoe 2012-07-30 05:18:21