php exec使用控制台和输入

时间:2012-02-15 13:29:05

标签: php exec stdin

例如,我想在控制台中更改PC时间。

C:\Users\user>time
The current time is: 15:25:21,04
Enter the new time:

PHP:

exec('time', $out, $ret);
/*
$out = 
The current time is: 15:25:21,04
Enter the new time:
*/

如何发送新时间?

UPD

没有1行命令echo <timestring> | time

#Thx to reox
#Working example:
$next_hour = date('H:i:s', strtotime('+1 hour'));
$command = 'time';
$handle = popen($command, 'r');
echo 'Command responce: <br>';
while($line = fgets($handle)) {
    echo $line;
    echo '<br>';
}
pclose($handle);
$handle = popen($command, 'w');
fputs($handle, $next_hour);
pclose($handle);

1 个答案:

答案 0 :(得分:1)

time控制台应用程序需要标准输入(STDIN)输入,这是控制台应用程序的标准输入(因此,对于任何其他标准命令行(CLI)应用程序也是如此,不仅仅是时间):< / p>

exec('echo <timestring> | time', $out, $ret);

应该这样做,管道符号|echo的输出重定向为time的输入。这是windows和unix的共同原则。