2013-05-04 119 views
1

我是php中的新手。我现在有睡眠功能的问题,那就是,我有一个简单sleep.php文件是这样的: <?php echo date('Y-m-d H:i:s'); sleep(5); ?>使用sleep()函数的php文件不能同时运行

当我在2个标签同时打这个文件,第一个执行,让这样的结果: 2013年5月4日10时06分24秒
但第二个必须等待第一个执行所完全然后给出结果:2013年5月4日10时06分29秒

我的问题是为什么他们不能同时执行?这是PHP的行动或因为网络服务或其他。我正在运行nginx 1.3.0

在此先感谢!

+0

在php.ini中查看session.auto_start是否打开。它看起来像一个会话锁定问题给我。 – cleong 2013-05-04 05:44:51

+0

我试过了,但那不正确。结果相同。我认为这不是PHP的问题,这是关于Web服务问题(Nginx)。无论如何,非常感谢,朋友:) – 2013-05-04 07:35:37

回答

0

我认为这是一种浏览器行为。实际上,你不能同时执行它们,而且其中一个执行得更早。在第一次执行时,浏览器会为您打开会话,当其他执行程序收到时,浏览器会感觉到它在执行时具有相同的文件名,直到第一次执行完成,然后开始第二次执行同一文件。如果您想同时在两个选项卡中看到您的echo语句的执行情况,可以将它们命名为两个不同的文件名,并在同一浏览器中执行它们,或者在两个不同的浏览器中执行一个文件。在这两种情况下,你都会得到你所期望的。

+0

你是正确的命名他们在2个不同的文件名。我尝试过,对此毫无疑问。实际上,当我试图在两台不同的计算机上打开我的sleep.php时,它们可以同时运行。我仍然怀疑这是浏览器行为还是nginx问题。太奇怪了! – 2013-05-04 07:38:33

+0

@imnobody,它是浏览器的行为。其实这是因为,在浏览器中启用了Cookie。如果你禁用cookie,那么它会完全同时执行它们。 – Amir 2013-05-04 07:47:33

+0

你是对的,朋友!我使用curl命令测试它。非常感谢,埃米尔! – 2013-05-06 04:35:41