To just write the stdout of another program (php or not), you can use backlinks: http://php.net/manual/en/language.operators.execution.php . For instance:
$boutput = `php b.php`;
To write stdin, do the following:
$ainput = file_get_contents('php://stdin');
Finally, to pass the contents of the string to an external program, use proc_open , as suggested by jeremy. In particular, here is what your a.php should contain:
$ainput = file_get_contents('php://stdin'); $descriptorspec = array( 0 => array("pipe", "r"), 1 => array("pipe", "w"), 2 => array("pipe", "w") ); $process = proc_open('php b.php', $descriptorspec, $pipes); fwrite($pipes[0], $ainput); fclose($pipes[0]); echo stream_get_contents($pipes[1]);
source share