HTTPまたはHTTPS経由でアクセスできるURLがあります。 HEADまたはGETリクエストを送信したいのですが、これは最も速く、レスポンスコードを取得するので、URLが上か下かを知ることができます。ZendとCurlを使用してHTTP応答コードを取得
Zend_HTTP_Clientを使ってどうすればいいですか? get_headers()関数を使用しましたが、一部のリモートサーバーでは非常に遅いです。 HTTPSを処理するかどうかはわかりません。
HTTPまたはHTTPS経由でアクセスできるURLがあります。 HEADまたはGETリクエストを送信したいのですが、これは最も速く、レスポンスコードを取得するので、URLが上か下かを知ることができます。ZendとCurlを使用してHTTP応答コードを取得
Zend_HTTP_Clientを使ってどうすればいいですか? get_headers()関数を使用しましたが、一部のリモートサーバーでは非常に遅いです。 HTTPSを処理するかどうかはわかりません。
この代わりにZend_Http_Client
を使用したくないかもしれません(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);
コードはテストされていません。自己責任。
'HEAD'は速くなる可能性がありますが、' HEAD'リクエストを受け付けるサーバーがすべてではないので、 'GET'を使うほうが良いかもしれません。 'get_headers'はPHPがネイティブストリームラッパーで' ssl'をサポートしている場合にのみ 'https'を使用できます。通常、PHPの '--with-ssl'をコンパイルすることで実現します。 – drew010
@ drew010「HEAD」についての良い点は、今日のことです。「HEAD」を試してみると「405」があります(ファイルが存在するかどうかを本当に知りたい場合)。 –