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

Jak*_*ake 2 php curl zend-framework zend-http-client

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

我如何使用Zend_HTTP_Client做到这一点?我使用了get_headers()函数,但在某些远程服务器上它非常慢.我不确定它是否处理HTTPS.

Tim*_*tle 5

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

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

$client = new Zend_Http_Client();
$response = $client->setUri($uri)->request(Zend_Http_Client::HEAD);
Run Code Online (Sandbox Code Playgroud)

如果没有,您可以尝试手动设置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);
Run Code Online (Sandbox Code Playgroud)

代码没有经过测试.使用风险由您自己承担.