PHPのcURLをcurl_multiで複数同時に実行する方法

php-curl_multi
  • URLをコピーしました!

突然ですが、PHPcURL関数はご存知でしょうか?
たぶん皆さんは、何度か耳にしたことがある、またはAPIを叩く場合などに使用しているのではないだろうか。
著者もたまに利用していますが、複数curl同時に叩く際は1つずつループしていた。
今回は、curl_multiを使った複数同時接続レスポンスを改善した時のお話です。

目次

curl_multiでcURLを同時に実行する

と言っても、基本的な流れはcURLとほぼ変わりません。

curl_multi実行の流れ
  • Step.1
    curl_multi_add_handle()

    cURLしたいURLリストを追加する。

  • Step.2
    curl_multi_exec()

    複数を同時(並行して)実行する。

  • Step.3
    curl_multi_remove_handle()

    ハンドラを閉じて終了する。

つまり、追加と削除はループして行い、実行は一発で行うと言った感じです。

curl_multi用の関数を作ると便利!

以下、配列に格納した複数URLを渡すと、それぞれの結果がURLをキーにした配列で返って来るという関数を作ってみました。

curl_multi用関数の使い方

URL配列を作り、先程作成した関数の引数に渡し、返って来た結果を表示します。

たぶん、APIの戻り値ならJSON形式が一般的だと思いますので、任意で[json_decode()]とかしてあげてください。
これだけで、cURLレスポンスが劇的に改善されました!

以上、ありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次