Windows에서 명령 줄을 통해 PHP 스크립트를 호출 할 때마다 (cygwin 또는 cmd에서) 스크립트는 여러 번 (6 회) 실행되는 것처럼 보이지만 첫 번째 실행의 출력 만 화면의 출력으로 보내집니다. 그것은 매우 이상한 문제입니다. 묘사하기에는 조금 까다 롭습니다.PHP 스크립트는 명령 행에서 한 번만 호출 될 때 여러 번 실행됩니다. 첫 번째 실행의 출력 만이 stdout으로 전송됩니다
test.php :
<?php
$t = microtime();
error_log($t . "\n", 3, 'test.out');
echo $t;
?>
내가 스크립트
번을 실행
하고,이 결과 다른 테스트 파일의 맞은 편에
$ php test.php;
0.97800300 1292476780
$ cat test.out
0.97800300 1292476780
0.04000200 1292476781
0.09500200 1292476781
0.14700200 1292476781
0.19900200 1292476781
0.25600300 1292476781
, 그리고 PHP의 다른 버전, 그것은 일관성을 보인다 6 번 실행. Cygwin 또는 Windows 셸을 통해 스크립트를 실행해도 상관 없습니다. 나는 WAMP를 통해 설치된 php5.2.6 및 php5.2.7과 php5.2.11을 사용해 보았습니다. strace를 사용해 보았지만 출력이 공백이었습니다. 이전에 Windows에서 사용 해 본 적이 없었습니다. cygwin 설치가 올바르지 않은 것 같습니다. 나는 윈도우 7을 사용하고 있는데, 윈도우 7을 사용하기 시작할 때 문제가 발생했다. 나는 윈도우 7을 실행하는 동료가있다. 그러나 똑같은 문제가있다.하지만 내 모든 윈도우 XP를 포함한 모든 사람들은 전혀 문제가 없다. PHP는 CLI를.
나는 여기에서 명백한 무엇이든을 놓치지 않기를 바란다. 제가 제공 할 수있는 다른 것을 알려주고 누군가에게 어떤 아이디어 나 조언이 있으면 가장 감사 할 것입니다!
기본적으로 file_put_contents()는 파일을 추가하지 않기 때문에 기본적으로 test.out에서 마지막 실행 시간 만 끝납니다. 제가 제공 한 스크립트는 실제로 문제를 설명하려고 시도했습니다. 이 문제를 일으키는 실제 문제는 php cli를 통해 셀렌 테스트를 실행 중이며 테스트가 각각 6 회씩 실행되고 있다는 것입니다. –
아마도 Selenium과 관련이 있습니다 –
그럴 것 같지 않습니다. 그래서 위의 예를 제공했습니다. –