2009-07-04 84 views
4

如果我正在生成一个数据流发送到浏览器,并且用户关闭浏览器,我可以告诉PHP内我不需要麻烦生成或发送其余的流?我想插入一些进入这个循环:PHP可以告诉浏览器何时消失?

while (!feof($pipes[1])) { 
    echo fgets($pipes[1]); 
} 

我的后备计划是让浏览器使用JavaScript onunload的打另一个PHP页面杀死正在生成数据的过程,但它是,如果清洁PHP可以告诉我何时回应无处不在。

回答

1

还有一个函数register_shutdown_function(),假设在执行暂停时执行该函数。我从来没有真正使用它,所以我不会担保它的工作效果,但我想我会提到它的完整性。

+0

关闭,但在这种情况下,他只是想停止处理用户中止数据。 – Ballsacian1 2009-07-04 19:23:07

1

我相信,脚本会在正常加载时自动中止(No ajax)。但是,如果你想通过使用xmlhttprequest通过PHP实现某种长轮询,我认为你将不得不用某种JavaScript来做,因为那时PHP无法检测到它。还想知道确切的情况。

0

这些答案指出我正在寻找什么。潜在的过程需要特别注意杀死它。我需要跳出循环。再次感谢Stack Overflow。

while (!feof($pipes[1]) && !connection_aborted()) 
{ 
    echo fgets($pipes[1]); 
} 

if (connection_aborted()) 
{ 
    exec('kill -4 '.$mypid); 
} 
相关问题