Чтобы просто захватить стандартный вывод другой программы (php или нет), вы можете использовать обратные ссылки:
http://php.net/manual/en/language.operators.execution.php.
Например:
$boutput = `php b.php`;
Чтобы захватить стандартный ввод, сделайте следующее:
$ainput = file_get_contents('php://stdin');
Наконец, чтобы передать содержимое строки во внешнюю программу, используйте proc_open , как следует из ответа Джереми.
В частности, вот что должен содержать ваш a.php:
$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]); # echo output of "b.php < stdin-from-a.php"
fclose($pipes[1]);
proc_close($process);