使用Zend和Curl获取HTTP响应代码

时间:2012-03-03 19:26:57

标签: php zend-framework curl zend-http-client

我有一个可以通过HTTP或HTTPS访问的URL。我想发送一个最快的HEAD或GET请求,并获取响应代码,以便我知道URL是启动还是关闭。

如何使用Zend_HTTP_Client执行此操作?我使用了get_headers()函数,但在某些远程服务器上它非常慢。我不确定它是否处理HTTPS。

1 个答案:

答案 0 :(得分:5)

您可能不希望使用Zend_Http_Client - 使用本机PHP函数(例如fsockopen,因为您似乎希望它有效)。

也就是说,这可能适合你(因为它默认使用套接字适配器,它的效率可能不如使用本机函数):

$client = new Zend_Http_Client();
$response = $client->setUri($uri)->request(Zend_Http_Client::HEAD);

如果没有,您可以尝试手动设置cURL选项。

$adapter = new Zend_Http_Client_Adapter_Curl();
$adapter->setCurlOption(CURLOPT_NOBODY, true);

$client = new Zend_Http_Client();
$client->setAdapter($adapter);
$response = $client->setUri($uri)->request(Zend_Http_Client::HEAD);

代码未经过测试。使用风险自负。