为特定函数/代码块(而不是整个脚本)设置超时?

时间:2010-08-06 01:10:31

标签: php function timeout

我有调用perl脚本执行各种操作的php脚本,有时候我会在没有得到响应的情况下继续执行它,这是基于传递给perl脚本的变量而我是连续做了很多不同的,所以我不能直接调试它,因为我没有来自perl的响应......

我真的希望能够在一定的秒数之后设置一个php函数或代码块来超时..我一直在搜索但是还没有找到关于如何做到这一点的任何内容,< / p>

我认为这样的事情可以起作用,但我不认为它会动态更新$ time变量,但也许有办法让它工作?任何建议表示赞赏

$time = time();
$timeout = $time + 5; //just as an example

do {

// do stuff
} while ($time < $timeout)

2 个答案:

答案 0 :(得分:8)

您最好的选择是使用proc_open,睡眠以获取超时金额,然后在进程仍未完成时调用proc_terminate。

有关proc_ *系列的详细信息,请参阅http://us3.php.net/manual/en/book.exec.php

答案 1 :(得分:0)

好吧,我不太确定这个问题会根据我的问题得到答案,所以我要做的是做perl调用,php不等待响应并让perl写出来输出到一个文本文件,然后有php读取这个指定的秒数后,我认为这是最简单的方法来做到这一点,它只适用于我在本地服务器上运行的小应用程序

相关问题