每当我通过windows的命令行(在cygwin或cmd中)调用PHP脚本时,脚本似乎运行多次(6)次,但只有第一次运行的输出被发送到屏幕的输出。这是一个非常奇怪的问题,有点棘手的描述。仅当在命令行上调用一次时,PHP脚本才会执行多次。只有第一次运行的输出被发送到标准输出
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 shell运行脚本,这并不重要。 我试过使用php5.2.6和php5.2.7和php5.2.11 - 全部通过WAMP安装。 我试过使用strace,但它的输出是空白的 - 我以前从未在Windows上使用它,也许我的cygwin安装不正确。我使用的是Windows 7,当我开始使用Windows 7时,问题就开始了。我有一个同事在运行Windows 7,他有完全相同的问题,但是每个人(包括我以前的自己)运行windows xp都没有问题。 php CLI。
我希望我不会错过任何明显的东西!让我知道我可以提供的任何东西,如果任何人有任何想法或建议,我将非常感激!
它本质上是一样的,但只有最后一次运行的时间结束于test.out,因为默认情况下,file_put_contents()覆盖文件不会附加它。我提供的脚本实际上只是试图说明问题。导致这个问题的实际情况是我正在通过php cli运行硒测试,并且测试全部都运行了6次。 – 2010-12-16 05:45:32
所以它可能与硒 – 2010-12-16 07:20:30
我不认为是这样。这就是我提供上述例子的原因。 – 2010-12-16 22:23:58