2012-02-15 2 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: 
*/ 

어떻게 새로운 시간을 보낼 수? 1 개 라인없이

UPD

time 콘솔 응용 프로그램은 표준 입력 (STDIN)에서 입력을 기대 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

명령, 즉 콘솔 응용 프로그램에 대한 표준 입력 (그래서 이것은 다른 표준에 대한 사실입니다 명령 행 (CLI) 응용 프로그램뿐만 아니라 시간도) :

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

트릭을 수행하면 파이프 기호 |echo의 출력을 time의 입력으로 리디렉션합니다. 그것은 윈도우와 유닉스 모두에 공통적 인 원리입니다.

+0

Windows에서 작동합니까? ("c : \ Users"부분은 OS를 제안합니다) – Nanne

+0

@reox 업데이트보기 – cetver

+0

@cetver mhh afaik는 php가 stdin을 지원하지 않습니까? 나는 오래 전에 SSH와 같은 문제가 있었다 ... 당신은 단지 암호를 넣을 수 없다 ... 나는 그것과 같은 문제가 여기 있다고 생각한다. – reox