我正在向一个已经非常复杂且容易出错的大型PHP应用程序添加一些外部HTTP调用(用于内部状态监视)。应该快速进行HTTP调用,而不会引发错误/异常。 HTTP调用失败是可以的。
我的第一个想法是使用Curl但它没有安装在服务器上。如果状态服务器无法访问/慢速,这会让我产生错误,设置超时并防止不必要的阻塞。
我知道几个可以发出HTTP请求的内置PHP函数(这些函数在服务器上启用) - file()
,file_get_contents()
,http-get()
我可以在它前面加上使用@
来抑制错误。但是如果监视服务器无法访问,它将挂起脚本几秒钟。有没有办法设置超时?
答案 0 :(得分:2)
您可以设置超时,documentation/comments of file_get_content说:
$ctx = stream_context_create(array(
'http' => array(
'timeout' => 1
)
));
file_get_contents("http://example.com/", 0, $ctx);