0

我正在使用 pctnl_fork 将一项大型任务分解为多个进程,它运行良好,除了一件烦人的事情:由于某种原因,输出中嵌入了“Content-type:text/html”,而我所做的一切似乎都无法摆脱其中。

这是该问题的一个工作示例:

<?php
  ob_start();
  $pid = pcntl_fork();
  if ($pid == -1) {
     die('could not fork');
  } else if ($pid) {
     // we are the parent
     pcntl_wait($status); //Protect against Zombie children
  } else {
     $fh=fopen('/var/www/html/test.txt','w');fwrite($fh, time());fclose($fh);        
     exit(0);
  }

  header_remove();
  ob_end_clean();
  echo " done";
?>

如果我省略 header_remove() 然后它输出

X-Powered-By: PHP/5.3.3 Content-type: text/html done

使用 header_remote 它摆脱了 X-Powered-By 标头,但 Content-type 标头仍然存在:

Content-type: text/html done

我把头发拉出来试图解决这个问题,但无济于事。我确信 ob_end_clean() 会修复它,但它没有。如果有人有任何建议,我将永远感激不尽。

4

1 回答 1

0

不要pcntl_fork()在 Web 服务器环境中使用(例如 mod_php)。正如您所观察到的,它在 Web 服务器中运行时无法正常运行,因此在较新版本的 PHP 中,它在 CLI SAPI 之外不可用。

于 2012-06-07T02:31:43.650 回答