Rumah pembangunan bahagian belakang tutorial php Peningkatan kecekapan: Perkongsian kemahiran pembangunan untuk muat turun HTTP tak segerak PHP bagi berbilang fail

Peningkatan kecekapan: Perkongsian kemahiran pembangunan untuk muat turun HTTP tak segerak PHP bagi berbilang fail

Sep 12, 2023 pm 12:34 PM
http tak segerak muat turun

效率提升:PHP 异步 HTTP 下载多个文件的开发技巧分享

Peningkatan kecekapan: Perkongsian kemahiran pembangunan untuk muat turun HTTP tak segerak PHP berbilang fail

Dalam aplikasi Internet moden, muat turun fail adalah perkara biasa keperluan. Walau bagaimanapun, apabila sejumlah besar fail perlu dimuat turun, kaedah muat turun segerak tradisional selalunya tidak cekap, menyebabkan pengguna menunggu lama dan mengurangkan pengalaman pengguna. Artikel ini akan memperkenalkan teknik pembangunan untuk menggunakan HTTP tak segerak PHP untuk memuat turun berbilang fail untuk meningkatkan kecekapan muat turun dan pengalaman pengguna.

  1. Prinsip muat turun HTTP tak segerak
    Kaedah muat turun segerak tradisional ialah memuat turun fail satu demi satu dan tunggu fail sebelumnya dimuat turun sebelum memuat turun fail seterusnya. Muat turun HTTP tak segerak boleh memulakan berbilang permintaan pada masa yang sama, menggunakan sepenuhnya lebar jalur rangkaian dan meningkatkan kelajuan muat turun dengan pesat. Pustaka sambungan cURL boleh digunakan dalam PHP untuk melaksanakan permintaan HTTP tak segerak.
  2. Menggunakan cURL untuk melaksanakan muat turun HTTP tak segerak
    Pertama, pastikan pelayan anda memasang pustaka sambungan cURL. Dalam PHP, permintaan HTTP tak segerak boleh dilaksanakan melalui kod berikut:
$urls = array(
  'http://example.com/file1.zip',
  'http://example.com/file2.zip',
  'http://example.com/file3.zip',
  // 添加更多文件链接
);

$mh = curl_multi_init();
$handles = array();

foreach ($urls as $url) {
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_multi_add_handle($mh, $ch);
  $handles[] = $ch;
}

$running = null;
do {
  curl_multi_exec($mh, $running);
} while ($running > 0);

foreach ($handles as $ch) {
  curl_multi_remove_handle($mh, $ch);
  curl_close($ch);
}

curl_multi_close($mh);
Salin selepas log masuk

Kod di atas mula-mula mentakrifkan pautan fail yang perlu dimuat turun, dan kemudian memulakan pemegang berbilang pemprosesan cURL. Gelung melalui pautan fail, buat pemegang cURL untuk setiap pautan dan tambahkannya pada pemegang berbilang pemprosesan. Selepas itu, semua permintaan dilaksanakan dengan memanggil fungsi curl_multi_exec() sehingga tiada permintaan berjalan. Akhir sekali, sumber dibersihkan dan pemegang cURL dan pemegang berbilang pemprosesan ditutup. curl_multi_exec() 函数来执行所有请求,直到没有请求在运行为止。最后,清理资源,关闭 cURL 句柄和多处理句柄。

  1. 处理下载结果
    在上述的异步 HTTP 下载代码中,无论是成功还是失败,下载的结果都会被忽略。为了更好地处理下载结果,可以通过 curl_multi_info_read() 函数来获取每个请求的信息。下面是一个示例代码:
$completed = 0;
do {
  $mh = curl_multi_init();
  $handles = array();

  foreach ($urls as $url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_multi_add_handle($mh, $ch);
    $handles[] = $ch;
  }

  $running = null;
  do {
    curl_multi_exec($mh, $running);
    $info = curl_multi_info_read($mh);
    if ($info !== false) {
      // 处理下载结果
      $completed++;
      $handle = $info['handle'];
      // ...
    }
  } while ($running > 0);

  foreach ($handles as $ch) {
    curl_multi_remove_handle($mh, $ch);
    curl_close($ch);
  }

  curl_multi_close($mh);
} while ($completed < count($urls));
Salin selepas log masuk

以上代码中,在每次执行异步 HTTP 请求后,使用 curl_multi_info_read() 函数检查是否有请求已经完成。如果有完成的请求,可以从返回的信息中获取相关的下载结果信息,并进行相应处理。通过记录已完成的请求数量,可以判断是否所有请求都已经完成。

  1. 添加错误处理
    在实际使用中,可能会出现网络连接错误或服务器响应错误等异常情况。为了处理这些异常,可以在每个请求的设置中添加相应的错误处理代码,以保证下载的稳定性和可靠性。
foreach ($urls as $url) {
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

  // 添加错误处理
  curl_setopt($ch, CURLOPT_FAILONERROR, true);
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
  curl_setopt($ch, CURLOPT_TIMEOUT, 30);

  curl_multi_add_handle($mh, $ch);
  $handles[] = $ch;
}
Salin selepas log masuk

在上述代码中,通过设置 CURLOPT_FAILONERROR 选项为 true,可以在请求出错时抛出异常。同时,通过设置合理的 CURLOPT_CONNECTTIMEOUTCURLOPT_TIMEOUT

    Memproses hasil muat turun

    Dalam kod muat turun HTTP tak segerak di atas, sama ada ia berjaya atau gagal, hasil muat turun akan diabaikan. Untuk mengendalikan hasil muat turun dengan lebih baik, anda boleh mendapatkan maklumat setiap permintaan melalui fungsi curl_multi_info_read(). Berikut ialah contoh kod:

    rrreee#🎜🎜#Dalam kod di atas, selepas setiap permintaan HTTP tak segerak dilaksanakan, fungsi curl_multi_info_read() digunakan untuk menyemak sama ada sebarang permintaan telah diselesaikan. Jika terdapat permintaan yang lengkap, maklumat hasil muat turun yang berkaitan boleh diperoleh daripada maklumat yang dikembalikan dan diproses dengan sewajarnya. Dengan merekodkan bilangan permintaan yang lengkap, anda boleh menentukan sama ada semua permintaan telah dilengkapkan. #🎜🎜#
      #🎜🎜#Tambah pengendalian ralat #🎜🎜#Dalam penggunaan sebenar, situasi tidak normal seperti ralat sambungan rangkaian atau ralat tindak balas pelayan mungkin berlaku. Untuk mengendalikan pengecualian ini, anda boleh menambah kod pengendalian ralat yang sepadan dalam tetapan setiap permintaan untuk memastikan kestabilan dan kebolehpercayaan muat turun. #🎜🎜##🎜🎜#rrreee#🎜🎜#Dalam kod di atas, dengan menetapkan pilihan CURLOPT_FAILONERROR kepada benar, anda boleh membuang pengecualian apabila permintaan gagal. Pada masa yang sama, dengan menetapkan pilihan CURLOPT_CONNECTTIMEOUT dan CURLOPT_TIMEOUT yang munasabah, anda boleh menetapkan sambungan dan meminta tamat masa untuk mengelakkan kegagalan muat turun yang disebabkan oleh tamat masa. #🎜🎜##🎜🎜#Ringkasan#🎜🎜#Teknik menggunakan HTTP tak segerak PHP untuk memuat turun berbilang fail boleh meningkatkan kecekapan muat turun dan pengalaman pengguna dengan ketara. Dengan menggunakan perpustakaan sambungan cURL dengan betul, berbilang permintaan HTTP boleh dimulakan serentak untuk memaksimumkan penggunaan lebar jalur rangkaian. Pada masa yang sama, situasi tidak normal dikendalikan dengan munasabah untuk memastikan kestabilan dan kebolehpercayaan muat turun. Melalui kemahiran pembangunan ini, kami boleh mengendalikan keperluan muat turun sejumlah besar fail dengan lebih cekap dalam projek sebenar. #🎜🎜#

Atas ialah kandungan terperinci Peningkatan kecekapan: Perkongsian kemahiran pembangunan untuk muat turun HTTP tak segerak PHP bagi berbilang fail. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk memuat turun episod drama pendek Hongguo Bagaimana untuk memuat turun episod drama pendek Hongguo Mar 11, 2024 pm 09:16 PM

Hongguo Short Play bukan sahaja platform untuk menonton drama pendek, tetapi juga khazanah kandungan yang kaya, termasuk novel dan kandungan menarik yang lain. Ini tidak dinafikan satu kejutan besar bagi ramai pengguna yang suka membaca. Walau bagaimanapun, ramai pengguna masih tidak tahu cara memuat turun dan menonton novel ini dalam Hongguo Short Play Dalam berikut, editor tapak ini akan memberikan anda langkah memuat turun terperinci, dengan harapan dapat membantu semua Rakan Kongsi yang memerlukan. Bagaimana untuk memuat turun dan menonton drama pendek Hongguo Jawapan: [Main pendek Hongguo] - [Buku audio] - [Artikel] - [Muat turun]. Langkah-langkah khusus: 1. Mula-mula buka perisian Drama Pendek Hongguo, masukkan halaman utama dan klik butang [Dengar Buku] di bahagian atas halaman 2. Kemudian pada halaman novel kita boleh melihat banyak kandungan artikel, di sini

Apakah yang perlu saya lakukan jika saya memuat turun kertas dinding orang lain selepas log masuk ke akaun lain pada mesin kertas dinding? Apakah yang perlu saya lakukan jika saya memuat turun kertas dinding orang lain selepas log masuk ke akaun lain pada mesin kertas dinding? Mar 19, 2024 pm 02:00 PM

Apabila anda log masuk ke akaun stim orang lain pada komputer anda, dan akaun orang lain itu kebetulan mempunyai perisian kertas dinding, stim akan memuat turun kertas dinding yang dilanggan ke akaun orang lain secara automatik selepas bertukar kembali ke akaun anda sendiri Pengguna boleh menyelesaikan masalah ini dengan mematikan penyegerakan awan wap. Apa yang perlu dilakukan jika enjin kertas dinding memuat turun kertas dinding orang lain selepas log masuk ke akaun lain 1. Log masuk ke akaun stim anda sendiri, cari penyegerakan awan dalam tetapan, dan matikan penyegerakan awan stim. 2. Log masuk ke akaun Steam orang lain yang anda log masuk sebelum ini, buka Bengkel Kreatif Kertas Dinding, cari kandungan langganan, dan kemudian batalkan semua langganan. (Sekiranya anda tidak dapat mencari kertas dinding pada masa hadapan, anda boleh mengumpulnya dahulu dan kemudian membatalkan langganan) 3. Tukar semula ke wap anda sendiri

Bagaimana untuk memuat turun pautan bermula dengan 115://? Muat turun pengenalan kaedah Bagaimana untuk memuat turun pautan bermula dengan 115://? Muat turun pengenalan kaedah Mar 14, 2024 am 11:58 AM

Baru-baru ini, ramai pengguna bertanya kepada editor, bagaimana untuk memuat turun pautan bermula dengan 115://? Jika anda ingin memuat turun pautan bermula dengan 115://, anda perlu menggunakan pelayar 115 Selepas anda memuat turun pelayar 115, mari lihat tutorial muat turun yang disusun oleh editor di bawah. Pengenalan kepada cara memuat turun pautan bermula dengan 115:// 1. Log masuk ke 115.com, muat turun dan pasang pelayar 115. 2. Masukkan: chrome://extensions/ dalam bar alamat pelayar 115, masukkan pusat sambungan, cari Tampermonkey dan pasang pemalam yang sepadan. 3. Masukkan dalam bar alamat pelayar 115: Skrip Grease Monkey: https://greasyfork.org/en/

Pengenalan kepada cara memuat turun dan memasang permainan superpeople Pengenalan kepada cara memuat turun dan memasang permainan superpeople Mar 30, 2024 pm 04:01 PM

Permainan superpeople boleh dimuat turun melalui klien wap Saiz permainan ini ialah kira-kira 28G Ia biasanya mengambil masa satu setengah jam untuk memuat turun dan memasang Berikut ialah tutorial muat turun dan pemasangan khusus untuk anda. Kaedah baharu untuk memohon ujian tertutup global 1) Cari "SUPERPEOPLE" dalam kedai Steam (muat turun klien stim) 2) Klik "Minta akses kepada ujian tertutup SUPERPEOPLE" di bahagian bawah halaman kedai "SUPERPEOPLE" 3) Selepas mengklik butang minta butang akses, Permainan "SUPERPEOPLECBT" boleh disahkan dalam perpustakaan Steam 4) Klik butang pasang dalam "SUPERPEOPLECBT" dan muat turun

Bagaimana untuk memuat turun cakera rangkaian Quark ke setempat? Bagaimana untuk menyimpan fail yang dimuat turun dari Quark Network Disk kembali ke komputer tempatan Bagaimana untuk memuat turun cakera rangkaian Quark ke setempat? Bagaimana untuk menyimpan fail yang dimuat turun dari Quark Network Disk kembali ke komputer tempatan Mar 13, 2024 pm 08:31 PM

Ramai pengguna perlu memuat turun fail apabila menggunakan Cakera Rangkaian Quark, tetapi kami ingin menyimpannya secara tempatan, jadi bagaimana untuk menyediakannya? Biarkan tapak ini memperkenalkan kepada pengguna secara terperinci cara menyimpan fail yang dimuat turun dari Quark Network Disk kembali ke komputer tempatan. Cara menyimpan fail yang dimuat turun dari cakera rangkaian Quark kembali ke komputer tempatan anda 1. Buka Quark, log masuk ke akaun anda dan klik ikon senarai. 2. Selepas mengklik ikon, pilih cakera rangkaian. 3. Selepas memasukkan Quark Network Disk, klik My Files. 4. Selepas memasukkan Fail Saya, pilih fail yang anda ingin muat turun dan klik ikon tiga titik. 5. Semak fail yang anda ingin muat turun dan klik Muat turun.

Bagaimana untuk memuat turun foobar2000? -Cara menggunakan foobar2000 Bagaimana untuk memuat turun foobar2000? -Cara menggunakan foobar2000 Mar 18, 2024 am 10:58 AM

foobar2000 ialah perisian yang boleh mendengar sumber muzik pada bila-bila masa Ia membawakan anda semua jenis muzik dengan kualiti bunyi tanpa kehilangan Versi pemain muzik yang dipertingkatkan membolehkan anda mendapatkan pengalaman muzik yang lebih komprehensif dan selesa mainkan audio lanjutan pada komputer Peranti dipindahkan ke telefon mudah alih untuk memberikan pengalaman main balik muzik yang lebih mudah dan cekap Reka bentuk antara muka adalah ringkas, jelas dan mudah digunakan Ia menggunakan gaya reka bentuk minimalis tanpa terlalu banyak hiasan dan operasi yang menyusahkan untuk bermula dengan cepat. Ia juga menyokong pelbagai kulit dan Tema, memperibadikan tetapan mengikut pilihan anda sendiri, dan mencipta pemain muzik eksklusif yang menyokong main balik berbilang format audio. Ia juga menyokong fungsi perolehan audio untuk melaraskan kelantangan kepada keadaan pendengaran anda sendiri untuk mengelakkan kerosakan pendengaran yang disebabkan oleh kelantangan yang berlebihan. Seterusnya, izinkan saya membantu anda

Di mana untuk memuat turun fail dari Quark Network Disk_Cara memuat turun Quark Network Disk ke kawasan setempat dan berkongsi Di mana untuk memuat turun fail dari Quark Network Disk_Cara memuat turun Quark Network Disk ke kawasan setempat dan berkongsi Mar 21, 2024 pm 03:57 PM

Sebagai alat cakera rangkaian yang mudah dan praktikal, Quark boleh membantu pengguna mendapatkan sumber kegemaran mereka dengan mudah Bagaimana jika anda ingin memuat turun fail secara tempatan? Biar editor memberitahu anda sekarang, mari belajar bersama! Cara memuat turun Cakera Rangkaian Quark ke perkongsian setempat 1. Mula-mula buka perisian Quark, masukkan halaman utama dan klik [Ikon Awan] di sebelah kanan bawah 2. Kemudian pada halaman Cakera Rangkaian Quark, kami klik fungsi [Dokumen]; 3. Kemudian pergi ke halaman dokumen, pilih fail yang anda ingin muat turun, dan klik [ikon tiga titik] 4. Selepas klik terakhir, kami klik [Muat turun] dalam kotak dialog pop timbul;

Bagaimana untuk memuat turun lagu-lagu Beilehu children Bagaimana untuk memuat turun lagu-lagu Beilehu children Mar 28, 2024 am 11:10 AM

Sebagai iringan yang sangat diperlukan untuk tumbesaran kanak-kanak, lagu-lagu kanak-kanak Beilehu telah memenangi kasih sayang ibu bapa dan kanak-kanak yang tidak terkira banyaknya dengan melodi yang ceria, gambar yang jelas dan kandungan yang menghiburkan dan mendidik. Bagi membolehkan bayi menikmati kegembiraan yang dibawakan oleh lagu kanak-kanak pada bila-bila masa dan di mana sahaja, ramai ibu bapa berharap untuk memuat turun lagu kanak-kanak Beilehu ke telefon bimbit atau tablet mereka supaya mereka boleh mendengar anak-anak mereka pada bila-bila masa, tetapi bagaimana untuk menyimpan lagu kanak-kanak Beilehu. ? Pada telefon mudah alih anda, tutorial ini akan membawakan anda pengenalan terperinci. Pengguna yang belum memahaminya boleh datang dan membaca bersama artikel ini untuk mengetahui lebih lanjut. Beilehu Nursery Rhymes Muat Turun Tutorial Pelbagai Gambar Lagu Kanak-kanak: Buka perisian dan pilih lagu kanak-kanak yang anda ingin muat turun Editor mengambil "Lagu Kanak-Kanak Klasik" sebagai contoh 2. Klik butang "Muat turun" di bawah bintang lagu kanak-kanak.

See all articles