あなたが望むすべてがheaders
、その後、代わりのcurl
試みている場合:
$urls = array('http://www.example.com','http://www.example.com2','http://www.example.com3','http://www.example4.com');
$httpCodes = [];
foreach($urls as $url)
{
$httpCodes[$url] = get_headers($url)[0];
}
var_dump($httpCodes);
これは、URLの応答からヘッダデータを取得するためにget_headers()
を使用しています。
編集:または、実際にcurl
を使用する場合は、あなたはcurl_multi
代わりに次のコードを使用することができます。
$urls = array('http://www.example.com','http://www.example.com2','http://www.example.com3','http://www.example4.com');
$curlMultiReq = curl_multi_init();
$ch = [];
foreach($urls as $key => $url)
{
$ch[$key] = curl_init($url);
curl_setopt($ch[$key], CURLOPT_HEADER, true); // we want headers
curl_setopt($ch[$key], CURLOPT_NOBODY, true); // we don't need body
curl_setopt($ch[$key], CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch[$key], CURLOPT_TIMEOUT,10);
curl_multi_add_handle($curlMultiReq, $ch[$key]);
}
$running = '';
do {
curl_multi_exec($curlMultiReq, $running);
curl_multi_select($curlMultiReq);
} while ($running > 0);
foreach(array_keys($ch) as $key){
echo curl_getinfo($ch[$key], CURLINFO_HTTP_CODE);
echo "\n";
curl_multi_remove_handle($curlMultiReq, $ch[$key]);
}
curl_multi_close($curlMultiReq);
あなたは 'cURL_mutli_ *'関数は、ここで説明のためにlookigている:http://us.php.net/manual/en/ref.curl.php - 私はあなた自身でそれを試してみることをお勧めします。あなたが失敗した場合、ちょうどここに戻って来てください。私たちはここに手伝っています:)しかし、注意してください:あなたが何個から何バイトをリクエストしたいのか分かりません。それらが多すぎると、ジョブが並行して実行されるため、大きなパフォーマンス上の問題に遭遇する可能性があります。 – Twinfriends
[Guzzle](http://docs.guzzlephp.org/en/stable/)のようなライブラリを使うこともできます。これは、ネイティブ 'curl_ *'関数よりも高いレベルの抽象化を提供します。複数の依頼を並行して – iainn
お送りいただきありがとうございます。彼らは私がする必要があることをよりよく理解するために大きな助けとなりました。ありがとう! – Jane