从PHP脚本快速可靠的HTTP调用

时间:2016-01-29 13:47:31

标签: php

我正在向一个已经非常复杂且容易出错的大型PHP应用程序添加一些外部HTTP调用(用于内部状态监视)。应该快速进行HTTP调用,而不会引发错误/异常。 HTTP调用失败是可以的。

我的第一个想法是使用Curl但它没有安装在服务器上。如果状态服务器无法访问/慢速,这会让我产生错误,设置超时并防止不必要的阻塞。

我知道几个可以发出HTTP请求的内置PHP函数(这些函数在服务器上启用) - file()file_get_contents()http-get()我可以在它前面加上使用@来抑制错误。但是如果监视服务器无法访问,它将挂起脚本几秒钟。有没有办法设置超时?

1 个答案:

答案 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);