+
95
-

php如何执行第三方程序并等待用户输入?

php

大家知道php可以通过exec、system等函数执行第三方程序,但是第三方程序有用户输入这一块,使用exec或system执行的话直接忽略,请问php如何执行第三方程序并等待用户输入?

网友回复

+
15
-

如何是使用php cli来执行获取用户输入的命令

<?php
echo "Are you sure you want to do this?  Type 'yes' to continue: ";
$handle = fopen ("php://stdin","r");
$line = fgets($handle);
if(trim($line) != 'yes'){
    echo "ABORTING!\n";
    exit;
}
echo "\n";
echo "Thank you, continuing...\n";
?>

如果执行第三方程序的话

<?php
// file: proc.php

// proc_open parameters
$descriptorspec = array(

   0 => array("pipe", "r"),  // stdin is a pipe that the child will read from
   1 => array("pipe", "w"),  // stdout is a pipe that the child will writ...

点击查看剩余70%

+
15
-

<?php
$descriptorspec = array(
   0 => array("pipe", "r"),
   1 => array("pipe", "w"),
   2 => array("pipe", "r")
);
$process = proc_open('php test_gen.php', $descriptorspec, $pipes, null, null); //run test_gen.php
echo ("Start process:\n");
if (is_resource($process))
{
    fwrite($pipes[0], "start\n");    // send start
    echo ("\n\nStart ....".fgets($pipes[1],4096)); //get answer
    fwrite($pipes[0], "get\n");    // send get
    echo ("Get: ".fgets($pipes[1],4096));    //get answer
    fwrite($pipes[0], "stop\n");    //send stop
    echo ("\n\nStop ....".fgets($pipes[1],4096));  //get answer

    fclose($pipes[0]);
    fclose($pipes[1]);
    fclose($pipes[2]);
  ...

点击查看剩余70%

我知道答案,我要回答