使用php通过STDIN / STDOUT强制输入

时间:2016-03-23 21:35:15

标签: java php io stdout stdin

我用Java编写了一个小应用程序,用php编写了一个脚本。我基本上尝试在运行proc_open()函数时使用php自动填写提示。

这是我的Java:

public class InputTester {
    public static void main(String[] args){
        System.out.println("Output line");
        String said = System.console().readLine("Say Something:");
        System.out.println("You said: " + said);
    }
}

这是我试图用来运行它的PHP:

<?php
    $error_output_file = "/tmp/error-output.txt";

    $command = "java -jar InputTester.jar";
    $descriptorspec = array(
        0 => array("pipe", "r"), //stdin
        1 => array("pipe", "w"), //stdout
        2 => array("file", $error_output_file, "a") //stderr
    );
    $proc = proc_open($command, $descriptorspec, $pipes);
    if (is_resource($proc)) while ($s = fgets($pipes[1])) {
            echo $s;
            if(strpos($s, "Something:")) fwrite($pipes[0], 'the thing');
    }
?>

但是,当我跑的时候     php input_tester.php

我得到的只是:     输出行

然后它关闭。有谁知道为什么?..

0 个答案:

没有答案