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 に答える