2

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

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

4

1 回答 1

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

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

于 2012-03-03T20:01:26.867 回答