shell_exec响应命令

时间:2015-10-03 10:41:46

标签: php shell

我试图通过php脚本在我的服务器上执行命令。我有cPanel,但我通过我的域访问php文件。脚本是:

$output = exec('php yii migrate/up --migrationPath=@vendor/dektrium/yii2-user/migrations');
echo "<pre>$output</pre>";

它正在运作,但输出为:Apply the above migrations? (yes|no) [no]:

我不知道如何回应这个命令。我尝试过下面的代码,但它不起作用:

exec("php yii migrate/up --migrationPath=@vendor/dektrium/yii2-user/migrations")
    $handle = fopen ("php://stdin","r");
    exec("yes");
    $line = fgets($handle);
    if(trim($line) != 'yes'){
        echo "ABORTING!\n";
        exit;
    }
    echo "\n";
    echo "Thank you, continuing...\n";

1 个答案:

答案 0 :(得分:1)

尝试

exec("yes | php yii migrate/up --migrationPath=@vendor/dektrium/yii2-user/migrations")

通过这种方式,您可以将yes的输出传递给您的php脚本。