2012-02-15 5 views
1

たとえば、コンソールでPC時間を変更したいとします。php execコンソールと入力で作業する

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

を命令なしtimeコンソールアプリケーションは、標準入力(STDIN)の入力を想定し、それは、コンソールアプリケーションのための標準的な入力情報(これは、任意の他の標準のために真でありますコマンドライン(CLI)アプリケーションだけでなく、だけではなく時間):

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

はトリックを行う必要があり、パイプ記号|は、出力をechoからtimeにリダイレクトします。これは、WindowsとUnixの共通の原則です。

+0

これはウィンドウで機能しますか? ( "c:\ Users"の部分はOSを示唆しています) – Nanne

+0

@reox更新を参照してください – cetver

+0

@cetver mhh afaikはphpがstdinをサポートしていませんか?私はSSHで長年前と同じ問題を抱えていました...パスワードを入れておくことはできません...私はその同じ問題がここにあると思います – reox

関連する問題