curl_multiはselectシステムコールを使って同時に複数のHTTPリクエストを行うことができます。マルチスレッドやらマルチプロセスを使っているわけではなく、原理はnode.jsなんかと近いI/O多重化で、一度に一つのことしかしていません。 PHPのcurlはlibcurlのAPIをほぼ踏襲しており、ちょっと取っつきにくいです。クラスでラッピングして、curl_close()などはデストラクタで呼ばれるように自動化すると、もう少しすっきりすると思います。 <?php /** * curl_multiでHTTP複数リクエストを並列実行するテンプレ * */ //タイムアウト時間を決めておく $TIMEOUT = 10; //10秒 /* * 1) 準備 * - curl_multiハンドラを用意 * - 各リクエストに対応するcurlハンドラを用意 * リクエスト分だけ必要 * *
たとえば、Basic認証がかかったURL http://basicninsyo.funny-k.com/test.html ユーザ名:guest パスワード:password というのがあったとして、このページをPHPで取得するのに $buf = join("", file("http://basicninsyo.funny-k.com/test.html")); なんてすると、当然のようにWarningではじかれてしまいます。 しかし、CURLを利用すると、Basic認証がかかったページでもアクセスすることができます。 $URL = "http://basicninsyo.funny-k.com/test.html"; $USERNAME = "guest"; $PASSWORD = "password"; $ch = curl_init(); curl_setopt($ch, CURL
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く