2016-11-08 111 views
0

中指定的每个间隔上休眠我想在代码中引入一些睡眠功能,以便我可以在指定的时间(时间间隔)调用某个函数。有没有什么办法可以在php

我所需的输出:

(1)在第一5 sec

im called 

(2)以10 sec(I,E 5秒+ 5秒)

im called // at first iteration of loop 



im called  // at second iteration of loop 

现在我正在使用

function curl_grab(){ 
    echo "im called<br/>"; 
} 

$arr = ['http://ab.com/','http://bc.com/']; 

foreach($arr as $el){ 
    curl_grab($el); 
    sleep(5); 
} 

,但与上面的代码的问题是,它是在一时间倾倒一切

像这样

im called 
im called 

我想一个由它一个

这里是演示:http://phpio.net/s/ggr

+0

检查http://stackoverflow.com/questions/18634546/command-sleep-to-暂停20秒 - 如果条件是遇见 –

+0

@SougataBose,代码转储一切在同一时间,但我想要的东西像javascript setTimeout() – EaB

+0

PHP缓冲输出。您可以尝试强制刷新输出,但还有很多其他的事情可能会阻止。 冲洗():http://php.net/manual/en/function.flush.php – geeves

回答

1

如果您正在使用浏览器来测试此代码,您将只能看到输出,因为您只会在执行完PHP代码后才会看到输出。您可以在终端中执行此操作以在发生时查看输出。

写代码到test.php的

function curl_grab(){ 
    echo "im called\n"; 
} 

$arr = ['http://ab.com/','http://bc.com/']; 

foreach($arr as $el){ 
    curl_grab($el); 
    sleep(5); 
} 

要在终端执行,你可以键入

$ php /path/to/test.php 
+0

非常感谢你得到的东西非常感谢您的即时帮助 – EaB

相关问题