PHP 脚本在命令行上仅调用一次时会执行多次。仅第一次运行的输出发送到 stdout
每次我通过 Windows 中的命令行(在 cygwin 或 cmd 中)调用 PHP 脚本时,该脚本似乎运行了多次 (6) 次,但是只有第一次运行的输出会发送到屏幕的输出。这是一个非常奇怪的问题,描述起来有点棘手。
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。
我希望我没有遗漏任何明显的东西!让我知道我还能提供什么,如果有人有任何想法或建议,我将不胜感激!
Everytime I invoke a PHP script via the command line in windows (either in cygwin or cmd) the script seems to be running multiple (6) times, however only the output of the first run is sent to the screen's output. It's a very weird problem, a little tricky to describe.
test.php:
<?php
$t = microtime();
error_log($t . "\n", 3, 'test.out');
echo $t;
?>
I run the script once, and this is the result
$ 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
Across different test files, and different versions of PHP, it seems to consistently run 6 times.
It Doesn't matter if I run the script through cygwin or the windows shell.
I've Tried using php5.2.6 and php5.2.7 and php5.2.11 - all installed via WAMP.
I tried using strace, but its output was blank - I've never used it on windows before, perhaps my cygwin installation isn't correct. I'm using windows 7, and the problem started when I started using windows 7. I have a colleague running windows 7 and he has the exact same problem, however everyone (including my former self) running windows xp has no problem at all with the php CLI.
I hope I'm not missing anything obvious here! Let me know anything else I can provide, and if anyone has any ideas or advice I would be most grateful!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
确实是真的很奇怪……
试试这个
It's indeed really weird...
Try this
所以它现在看起来像是我正在使用的 PHP 版本/版本中的错误,因为使用不同版本的 PHP 进行测试不会产生相同的错误。我显然在上面的帖子(以及昨天的测试)中犯了一个错误,并且没有正确地使用不同的版本进行测试。
更新了 test.php
并使用 5.2.6、5.2.7 和 5.2.11 运行
所以我想在这个阶段我只能得出结论,这是我为 5.2.6 构建的 php 版本中的一个错误:
PHP 5.2。 6 (cli)(构建时间:2008 年 5 月 2 日 18:02:07)
So it now looks like an error in the versions/builds of PHP I'm using, as testing with different versions of PHP will not produce the same error. I clearly made an error in my above post (and testing yesterday) and didn't correctly test with the different versions.
Updated test.php
And running with 5.2.6, 5.2.7 and 5.2.11
So I guess at this stage I can only conclude it's a bug in the php build I've got for 5.2.6:
PHP 5.2.6 (cli) (built: May 2 2008 18:02:07)