[英]Cannot pass STDIN using shell_exec() in PHP
我是PHP的完整入門者。
我想使用PHP執行一個java .jar文件。jar文件從STDIN
接收輸入並在STDOUT
生成STDOUT
。要執行jar文件,這是我在Ubuntu Linux終端中執行的操作:
./java/bin/java -jar abc.jar
<here goes the STDIN>
Ctrl+D
<The output gets generated here at the STDOUT>
這很完美,但是當我在PHP中將其復制為:
$p=shell_exec("./java/bin/java -jar abc.jar $s 0<&-");
這會發送$p
,當STDIN
為空時生成的輸出。這絕對意味着$s
沒有被傳遞。 提前致謝。
在黑暗中完成拍攝,但是:
$p=shell_exec(sprintf('./java/bin/java -jar abc.jar "%s" 0<&-', addslashes($s)));
$s
包含不轉義的字符,這些字符會破壞命令語法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.