2010-12-16 108 views
1

每当我通过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。

我希望我不会错过任何明显的东西!让我知道我可以提供的任何东西,如果任何人有任何想法或建议,我将非常感激!

回答

0

所以现在看起来像在版本/ PHP构建的我使用一个错误,因为不同版本的PHP不会产生测试同样的错误。我清楚地在我上面的帖子中发现了一个错误(并在昨天进行了测试),并没有正确测试不同的版本。

更新test.php的

<?php 
$t = microtime(); 
error_log($t."\n", 3, $argv[1]); 
echo $t; 
?> 

并与5.2.6,5.2.7和5.2.11

[email protected] ~ 
$ /cygdrive/c/wamp/bin/php/php5.2.6/php test.php test-526.out 
0.20960200 1292539753 
[email protected] ~ 
$ cat test-526.out 
0.20960200 1292539753 
0.27060200 1292539753 
0.32160200 1292539753 
0.37460200 1292539753 
0.42460200 1292539753 
0.47660200 1292539753 

[email protected] ~ 
$ /cygdrive/c/wamp/bin/php/php5.2.7/php test.php test-527.out 
0.32660200 1292539767 
[email protected] ~ 
$ cat test-527.out 
0.32660200 1292539767 

[email protected] ~ 
$ /cygdrive/c/wamp/bin/php/php5.2.11/php test.php test-5211.out 
0.70760500 1292539776 
[email protected] ~ 
$ cat test-5211.out 
0.70760500 1292539776 

所以我想在这个阶段运行我只能断定这是一个错误我得到的PHP版本5.2.6:PHP 5.2.6 (cli) (built: May 2 2008 18:02:07)

0

这确实很奇怪...... 试试这个

<?php 
$t = microtime(); 
file_put_contents('test.out', $t); 
echo $t; 
?> 
+0

它本质上是一样的,但只有最后一次运行的时间结束于test.out,因为默认情况下,file_put_contents()覆盖文件不会附加它。我提供的脚本实际上只是试图说明问题。导致这个问题的实际情况是我正在通过php cli运行硒测试,并且测试全部都运行了6次。 – 2010-12-16 05:45:32

+0

所以它可能与硒 – 2010-12-16 07:20:30

+0

我不认为是这样。这就是我提供上述例子的原因。 – 2010-12-16 22:23:58

相关问题