我可以说我的问题与
PHP有关,但我更关心的是在函数执行可以无限期执行的情况下编程的正确逻辑.
什么是监视执行某些功能所需时间的正确方法,以及如何停止执行并继续执行其余程序?
好吧,我知道例如有一个set_time_limit()函数返回致命错误但我不想这样,我希望我的代码在x秒之后继续,或者可能在超过时间之后抛出异常,抓住它并做别的什么?
感谢您提供的任何帮助,任何链接,任何以“应该”完成的方式解决此问题的文章.
BR,
新人
PHP没有提供超时功能的一般方法.但是,这个问题很常见的许多组件都允许您定义超时.
例子:
> HTTP Stream Wrapper允许您指定超时选项:
file_get_contents('http://example.com',false,stream_context_create( array('http' => array('timeout' => 10 /* seconds */)) ));
> PDO(数据库抽象层)允许您使用PDO::ATTR_TIMEOUT
attribute设置超时(请注意,此属性可能表示具有不同数据库驱动程序的不同内容):
$pdo->setAttribute(PDO::ATTR_TIMEOUT,10 /* seconds */);
>使用FTP时可以设置连接超时:
$ftp = ftp_connect('example.com',21,10 /* seconds */)
同样,访问潜在远程资源的所有其他扩展都将提供此类超时参数或选项.