Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pengenalan fungsi PHP—curl_multi_select(): Tunggu pemindahan cURL yang sedang aktif selesai

Pengenalan fungsi PHP—curl_multi_select(): Tunggu pemindahan cURL yang sedang aktif selesai

王林
王林asal
2023-07-24 23:31:521283semak imbas

Pengenalan fungsi PHP—curl_multi_select(): Tunggu pemindahan cURL yang sedang aktif selesai

Pengenalan

Dalam PHP, menggunakan perpustakaan cURL untuk membuat permintaan HTTP adalah operasi yang sangat biasa. Apabila kita perlu mengendalikan berbilang permintaan HTTP pada masa yang sama, kita boleh menggunakan perpustakaan curl_multi untuk mencapai ini. Apabila menggunakan perpustakaan curl_multi, kita sering perlu menunggu pemindahan cURL yang sedang aktif selesai. Pada masa ini, anda boleh menggunakan fungsi curl_multi_select().

Definisi fungsi

curl_multi_select(resource $mh[, float $timeout])

Parameter description

  • $mh: pemegang kelompok cURL untuk menunggu.
  • $masa tamat: Parameter pilihan, nyatakan had masa menunggu. Jika ditetapkan kepada 0, ia kembali serta-merta.

Fungsi Fungsi

fungsi curl_multi_select() akan menunggu pemindahan cURL yang sedang aktif selesai dan mengembalikan bilangan pemegang boleh dibaca. Memanggil fungsi ini memastikan skrip kami aktif semasa menunggu.

Contoh

$mh = curl_multi_init();

$ch1 = curl_init();
curl_setopt($ch1, CURLOPT_URL, "https://example.com/api/request1");
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true);
curl_multi_add_handle($mh, $ch1);

$ch2 = curl_init();
curl_setopt($ch2, CURLOPT_URL, "https://example.com/api/request2");
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true);
curl_multi_add_handle($mh, $ch2);

do {
    $status = curl_multi_exec($mh, $active);
    if ($active) {
        curl_multi_select($mh); // 等待当前活动的cURL传输完成
    }
} while ($active && $status == CURLM_OK);

// 处理完所有请求后,关闭cURL句柄
foreach ([$ch1, $ch2] as $ch) {
    curl_multi_remove_handle($mh, $ch);
    curl_close($ch);
}

curl_multi_close($mh);

Dalam contoh ini, kami mencipta pemegang curl_multi dan menambah dua pemegang curl. Kami kemudian menggunakan gelung untuk menunggu pemindahan cURL yang sedang aktif selesai. Dalam setiap gelung, kami memanggil fungsi curl_multi_exec() untuk mengendalikan pemindahan cURL dan menyemak sama ada terdapat sebarang pemindahan aktif. Jika terdapat pemindahan aktif, kami memanggil fungsi curl_multi_select() untuk menunggu dan mengendalikan tugas lain semasa menunggu. Gelung akan dijalankan sehingga semua pemindahan selesai dan tiada pemindahan aktif.

Akhir sekali, kami menutup semua pemegang cURL dan pemegang curl_multi selepas memproses semua permintaan.

Ringkasan

Menggunakan fungsi curl_multi_select() boleh membantu kami menunggu pemindahan cURL yang sedang aktif selesai. Ini memastikan skrip aktif semasa menunggu, meningkatkan kecekapan dan prestasi berbilang permintaan HTTP.

Nota: Apabila menggunakan fungsi ini, sila pastikan bahawa ralat dan pengecualian telah dikendalikan dengan betul untuk mengelakkan skrip daripada jatuh ke dalam keadaan menunggu yang tidak terhingga.

Atas ialah kandungan terperinci Pengenalan fungsi PHP—curl_multi_select(): Tunggu pemindahan cURL yang sedang aktif selesai. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn