2011-10-07 107 views
0

我想要做的是,我正在运行对Twitter的查询,如果结果的延迟超过特定时间,比我想对用户说“请稍后再试,超时。”。我不是问Twitter部分,我是因为最初的解释而讲述了我的故事,但我喜欢学习如何用主要的PHP本地代码来实现它。如何在PHP中为特定执行设置超时?

是什么在我的脑海里会是下面的东西:

startTimeout(callback(),3000);//Probably this function needs to start a new thread or another concurrent execution scope 
//... initiating some twitter queries here 

function callback() 
{ 
    echo "Time out, sorry"; 
} 
+0

PHP没有原生的方式来中断函数调用。某些模块具有自己的超时功能(例如curl,套接字),但通常您不能中断正在进行的通话,除非通过全局set_time_limit脚本杀手。 –

回答

2

set_time_limit()函数应该做的伎俩。这定义了脚本可以运行的秒数。

+0

如何将这个函数应用于特定的执行?而不是整个应用程序? – Tarik

+0

您可以将其应用于函数,因为它在脚本运行时设置脚本超时。您也可以多次运行它。 –

0

你的目的,如果使用卷曲,尝试

$timeout = 10; 
curl_setopt($resource, CURLOPT_TIMEOUT, $timeout); 

的其他功能,它不是那么容易做到这一点。

有哪些已经支持TIMEOUT参数的功能,这取决于你的目的

+0

在这种情况下,我不使用Curl。 PHP内的任何其他建议? – Tarik

+0

@Braveyard:只需将curl_setopt用于CURL即可。有没有可靠的方法来做类似超时的事情,因为PHP不像javascript那样是异步的 – genesis

相关问题