我有一个可以通过 HTTP 或 HTTPS 访问的 URL。我想发送一个最快的 HEAD 或 GET 请求并获取响应代码,以便我知道 URL 是打开还是关闭。
我如何使用 Zend_HTTP_Client 做到这一点?我使用了 get_headers() 函数,但在某些远程服务器上它非常慢。我不确定它是否处理 HTTPS。
我有一个可以通过 HTTP 或 HTTPS 访问的 URL。我想发送一个最快的 HEAD 或 GET 请求并获取响应代码,以便我知道 URL 是打开还是关闭。
我如何使用 Zend_HTTP_Client 做到这一点?我使用了 get_headers() 函数,但在某些远程服务器上它非常慢。我不确定它是否处理 HTTPS。
您可能不想为此使用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);
代码未经测试。使用风险自负。