2009-11-10 76 views
1

我已经编写了一个PHP脚本,该脚本必须分叉,并行执行一些处理,然后主页面在处理后返回数据。我目前使用pcntl函数来做到这一点。我需要在2到10个线程之间的任意位置运行并行工作,并且必须等到从脚本输出到浏览器之前得到所有线程的结果。如何在处理PHP中的线程时阻止重复的头文件?

不幸的是,我发现我出现在输出多个“内容类型”标题:

Content-Type: text/plain 

Content-Type: text/plain 

Content-Type: text/plain 
[... actual content ...] 

这似乎是一个头每线程产生。我试过在处理之前通过fclose(STDOUT)关闭STDOUT,并且我已经尝试通过输出缓冲来解决所有问题,但无济于事。我还没有发现任何人有这个问题,所以或者没有人试图做到这一点,或者我正在做一些没有成功的事情。

我真的很想找到任何方法来阻止这种情况的发生,或者提供其他方法来解决这个问题。

服务器设置为在mod_suPHP下使用PHP作为CGI,如果这有什么区别的话。

+0

如果没有正确的代码示例,我不能告诉你任何有用的内容 – Kris 2009-11-10 16:19:58

+0

如果存在标题密钥,它将被覆盖,在我看来。 – powtac 2009-11-10 16:22:54

+0

我相信从apache内部分叉是一个不行。通过exec产生一个新的进程,并有*那*一个分支。 – 2009-11-10 16:39:30

回答

0

您是否尝试过会话变量? 您可以在每个脚本完成/成功时设置一个会话变量,然后检查/等待您的主进程中它们是否完整/成功。

相关问题