我很高兴地使用proc_open
将数据导入到另一个PHP进程中。
例如:
$spec = array (
0 => array('pipe', 'r'),
// I don't need output pipes
);
$cmd = 'php -f another.php >out.log 2>err.log';
$process = proc_open( $cmd, $spec, $pipes );
fwrite( $pipes[0], 'hello world');
fclose( $pipes[0] );
proc_close($process);
在另一个PHP文件中,我使用以下代码输出标准输入(STDIN):
echo file_get_contents('php://stdin');
这个命令在前台可以正常运行,但是放到后台就不行了。只需要在
$cmd
后面加上&
,就无法从标准输入中获取任何内容了。我一定漏掉了一些基础知识。使用fgets(STDIN)
也无法解决问题。请问你有什么想法吗?