Maison développement back-end tutoriel php Amélioration de l'efficacité : partage des compétences de développement pour le téléchargement HTTP asynchrone PHP de plusieurs fichiers

Amélioration de l'efficacité : partage des compétences de développement pour le téléchargement HTTP asynchrone PHP de plusieurs fichiers

Sep 12, 2023 pm 12:34 PM
http 异步 下载

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

Amélioration de l'efficacité : partage de conseils de développement pour le téléchargement HTTP asynchrone PHP de plusieurs fichiers

Dans les applications Internet modernes, le téléchargement de fichiers est une exigence très courante. Cependant, lorsqu'un grand nombre de fichiers doivent être téléchargés, la méthode de téléchargement synchrone traditionnelle est souvent inefficace, ce qui oblige les utilisateurs à attendre longtemps et réduit l'expérience utilisateur. Cet article présentera une technique de développement permettant d'utiliser le HTTP asynchrone PHP pour télécharger plusieurs fichiers afin d'améliorer l'efficacité du téléchargement et l'expérience utilisateur.

  1. Principe du téléchargement HTTP asynchrone
    La méthode de téléchargement synchrone traditionnelle consiste à télécharger les fichiers un par un et à attendre que le fichier précédent soit téléchargé avant de télécharger le fichier suivant. Les téléchargements HTTP asynchrones peuvent lancer plusieurs requêtes en même temps, exploitant pleinement la bande passante du réseau et améliorant considérablement la vitesse de téléchargement. La bibliothèque d'extensions cURL peut être utilisée en PHP pour implémenter des requêtes HTTP asynchrones.
  2. Utilisez cURL pour implémenter le téléchargement HTTP asynchrone
    Tout d'abord, assurez-vous que la bibliothèque d'extensions cURL est installée sur votre serveur. En PHP, les requêtes HTTP asynchrones peuvent être implémentées via le code suivant :
$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);
Copier après la connexion

Le code ci-dessus définit d'abord le lien du fichier qui doit être téléchargé, puis initialise un handle de multitraitement cURL. Parcourez les liens de fichiers, en créant un handle cURL pour chaque lien et en l'ajoutant au handle multitraitement. Par la suite, toutes les requêtes sont exécutées en appelant la fonction curl_multi_exec() jusqu'à ce qu'il n'y ait plus aucune requête en cours d'exécution. Enfin, nettoyez les ressources et fermez les handles cURL et les handles multitraitement. 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));
Copier après la connexion

以上代码中,在每次执行异步 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;
}
Copier après la connexion

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

    Traitement des résultats du téléchargement

    Dans le code de téléchargement HTTP asynchrone ci-dessus, les résultats du téléchargement seront ignorés, quel que soit le succès ou l'échec. Afin de mieux gérer les résultats du téléchargement, vous pouvez obtenir les informations de chaque requête via la fonction curl_multi_info_read(). Voici un exemple de code :

    rrreee🎜Dans le code ci-dessus, après l'exécution de chaque requête HTTP asynchrone, la fonction curl_multi_info_read() est utilisée pour vérifier si une requête a été terminée. S'il existe une demande terminée, les informations pertinentes sur le résultat du téléchargement peuvent être obtenues à partir des informations renvoyées et traitées en conséquence. En enregistrant le nombre de demandes terminées, vous pouvez déterminer si toutes les demandes ont été complétées. 🎜
      🎜Ajouter la gestion des erreurs🎜En utilisation réelle, des situations anormales telles que des erreurs de connexion réseau ou des erreurs de réponse du serveur peuvent survenir. Afin de gérer ces exceptions, vous pouvez ajouter le code de gestion des erreurs correspondant dans les paramètres de chaque requête pour garantir la stabilité et la fiabilité du téléchargement. 🎜🎜rrreee🎜Dans le code ci-dessus, en définissant l'option CURLOPT_FAILONERROR sur true, vous pouvez lever une exception lorsque la requête échoue. Dans le même temps, en définissant des options CURLOPT_CONNECTTIMEOUT et CURLOPT_TIMEOUT raisonnables, vous pouvez définir la connexion et demander un délai d'attente pour éviter les échecs de téléchargement causés par le délai d'attente. 🎜🎜Résumé🎜La technique d'utilisation du HTTP asynchrone PHP pour télécharger plusieurs fichiers peut considérablement améliorer l'efficacité du téléchargement et l'expérience utilisateur. En utilisant correctement la bibliothèque d'extensions cURL, plusieurs requêtes HTTP peuvent être lancées simultanément pour maximiser l'utilisation de la bande passante du réseau. Dans le même temps, les situations anormales sont traitées de manière raisonnable pour garantir la stabilité et la fiabilité des téléchargements. Grâce à ces compétences en développement, nous pouvons gérer plus efficacement les exigences de téléchargement de grandes quantités de fichiers dans les projets réels. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment télécharger des épisodes du court métrage dramatique Hongguo Comment télécharger des épisodes du court métrage dramatique Hongguo Mar 11, 2024 pm 09:16 PM

Hongguo Short Play n'est pas seulement une plate-forme pour regarder des pièces courtes, mais aussi un trésor de contenu riche, notamment des romans et d'autres contenus passionnants. C’est sans aucun doute une énorme surprise pour de nombreux utilisateurs qui aiment lire. Cependant, de nombreux utilisateurs ne savent toujours pas comment télécharger et regarder ces romans dans Hongguo Short Play. Dans ce qui suit, l'éditeur de ce site vous fournira des étapes de téléchargement détaillées, dans l'espoir d'aider tous les partenaires dans le besoin. Comment télécharger et regarder la pièce courte de Hongguo ? Réponse : [Pièce courte de Hongguo] - [Livre audio] - [Article] - [Télécharger]. Étapes spécifiques : 1. Ouvrez d'abord le logiciel Hongguo Short Drama, entrez dans la page d'accueil et cliquez sur le bouton [Écouter les livres] en haut de la page. 2. Ensuite, sur la page du roman, nous pouvons voir de nombreux contenus d'articles, ici ;

Que dois-je faire si je télécharge les fonds d'écran d'autres personnes après m'être connecté à un autre compte sur WallpaperEngine ? Que dois-je faire si je télécharge les fonds d'écran d'autres personnes après m'être connecté à un autre compte sur WallpaperEngine ? Mar 19, 2024 pm 02:00 PM

Lorsque vous vous connectez au compte Steam de quelqu'un d'autre sur votre ordinateur et que le compte de cette autre personne dispose d'un logiciel de fond d'écran, Steam téléchargera automatiquement les fonds d'écran abonnés au compte de l'autre personne après être revenu à votre propre compte. Les utilisateurs peuvent résoudre ce problème en. désactiver la synchronisation du cloud Steam. Que faire si WallpaperEngine télécharge les fonds d'écran d'autres personnes après s'être connecté à un autre compte 1. Connectez-vous à votre propre compte Steam, recherchez la synchronisation cloud dans les paramètres et désactivez la synchronisation cloud Steam. 2. Connectez-vous au compte Steam de quelqu'un d'autre auquel vous vous êtes connecté auparavant, ouvrez Wallpaper Creative Workshop, recherchez le contenu de l'abonnement, puis annulez tous les abonnements. (Si vous ne trouvez pas le fond d'écran à l'avenir, vous pouvez d'abord le récupérer, puis annuler l'abonnement) 3. Revenez à votre propre Steam

Comment télécharger des liens commençant par 115:// ? Introduction à la méthode de téléchargement Comment télécharger des liens commençant par 115:// ? Introduction à la méthode de téléchargement Mar 14, 2024 am 11:58 AM

Récemment, de nombreux utilisateurs ont demandé à l'éditeur comment télécharger des liens commençant par 115:// ? Si vous souhaitez télécharger des liens commençant par 115://, vous devez utiliser le navigateur 115. Après avoir téléchargé le navigateur 115, jetons un œil au didacticiel de téléchargement compilé par l'éditeur ci-dessous. Introduction à la façon de télécharger des liens commençant par 115:// 1. Connectez-vous à 115.com, téléchargez et installez le navigateur 115. 2. Saisissez : chrome://extensions/ dans la barre d'adresse du navigateur 115, entrez dans le centre d'extensions, recherchez Tampermonkey et installez le plug-in correspondant. 3. Saisissez dans la barre d'adresse du navigateur 115 : Grease Monkey Script : https://greasyfork.org/en/

Introduction à la façon de télécharger et d'installer le jeu superpeople Introduction à la façon de télécharger et d'installer le jeu superpeople Mar 30, 2024 pm 04:01 PM

Le jeu superpeople peut être téléchargé via le client Steam. La taille de ce jeu est d'environ 28 Go. Le téléchargement et l'installation prennent généralement une heure et demie. Voici un tutoriel de téléchargement et d'installation spécifique pour vous ! Nouvelle méthode pour postuler aux tests fermés globaux 1) Recherchez "SUPERPEOPLE" dans la boutique Steam (téléchargement du client Steam) 2) Cliquez sur "Demander l'accès aux tests fermés SUPERPEOPLE" en bas de la page de la boutique "SUPERPEOPLE" 3) Après avoir cliqué sur le bouton de demande d'accès, le jeu "SUPERPEOPLECBT" peut être confirmé dans la bibliothèque Steam 4) Cliquez sur le bouton d'installation dans "SUPERPEOPLECBT" et téléchargez

Comment télécharger le disque réseau Quark en local ? Comment enregistrer les fichiers téléchargés depuis Quark Network Disk sur l'ordinateur local Comment télécharger le disque réseau Quark en local ? Comment enregistrer les fichiers téléchargés depuis Quark Network Disk sur l'ordinateur local Mar 13, 2024 pm 08:31 PM

De nombreux utilisateurs ont besoin de télécharger des fichiers lorsqu'ils utilisent Quark Network Disk, mais nous souhaitons les enregistrer localement, alors comment configurer cela ? Laissez ce site présenter aux utilisateurs en détail comment enregistrer les fichiers téléchargés à partir de Quark Network Disk sur l'ordinateur local. Comment enregistrer les fichiers téléchargés depuis le disque réseau Quark sur votre ordinateur local 1. Ouvrez Quark, connectez-vous à votre compte et cliquez sur l'icône de liste. 2. Après avoir cliqué sur l'icône, sélectionnez le disque réseau. 3. Après avoir accédé à Quark Network Disk, cliquez sur Mes fichiers. 4. Après avoir accédé à Mes fichiers, sélectionnez le fichier que vous souhaitez télécharger et cliquez sur l'icône à trois points. 5. Cochez le fichier que vous souhaitez télécharger et cliquez sur Télécharger.

Comment télécharger foobar2000 ? -Comment utiliser foobar2000 Comment télécharger foobar2000 ? -Comment utiliser foobar2000 Mar 18, 2024 am 10:58 AM

foobar2000 est un logiciel qui peut écouter des ressources musicales à tout moment. Il vous offre toutes sortes de musique avec une qualité sonore sans perte. La version améliorée du lecteur de musique vous permet d'obtenir une expérience musicale plus complète et plus confortable. lire l'audio avancé sur l'ordinateur. L'appareil est transplanté sur le téléphone mobile pour offrir une expérience de lecture de musique plus pratique et efficace. La conception de l'interface est simple, claire et facile à utiliser. opérations pour démarrer rapidement. Il prend également en charge une variété de skins et de thèmes, personnalisez les paramètres en fonction de vos propres préférences et créez un lecteur de musique exclusif prenant en charge la lecture de plusieurs formats audio. Il prend également en charge la fonction de gain audio pour régler le volume. selon vos propres conditions auditives pour éviter les dommages auditifs causés par un volume excessif. Ensuite, laisse-moi t'aider

Où télécharger des fichiers depuis Quark Network Disk_Comment télécharger Quark Network Disk sur la zone locale et les partager Où télécharger des fichiers depuis Quark Network Disk_Comment télécharger Quark Network Disk sur la zone locale et les partager Mar 21, 2024 pm 03:57 PM

En tant qu'outil de disque réseau pratique et pratique, Quark peut aider les utilisateurs à obtenir facilement leurs ressources préférées. Que faire si vous souhaitez télécharger un fichier localement ? Laissez l’éditeur vous le dire maintenant, apprenons-le ensemble ! Comment télécharger Quark Network Disk vers le partage local 1. Ouvrez d'abord le logiciel Quark, entrez dans la page d'accueil et cliquez sur l'[icône Cloud] en bas à droite ; 2. Ensuite, sur la page Quark Network Disk, cliquez sur la fonction [Document] ; 3. Accédez ensuite à la page du document, sélectionnez le fichier que vous souhaitez télécharger et cliquez sur [l'icône à trois points] 4. Après le dernier clic, nous cliquons sur [Télécharger] dans la boîte de dialogue contextuelle ;

Comment télécharger les chansons pour enfants de Beilehu Comment télécharger les chansons pour enfants de Beilehu Mar 28, 2024 am 11:10 AM

En tant qu'accompagnement indispensable à la croissance des enfants, les chansons pour enfants de Beilehu ont gagné l'amour d'innombrables parents et enfants grâce à leur mélodie joyeuse, leurs images vives et leur contenu divertissant et éducatif. Afin de permettre aux bébés de profiter de la joie apportée par les chansons pour enfants à tout moment et n'importe où, de nombreux parents espèrent télécharger les chansons pour enfants de Beilehu sur leurs téléphones portables ou tablettes afin de pouvoir écouter leurs enfants à tout moment, mais comment sauvegarder les chansons pour enfants de Beilehu ? Sur votre téléphone mobile, ce tutoriel vous apportera une introduction détaillée. Les utilisateurs qui ne le comprennent pas encore peuvent venir lire cet article pour en savoir plus. Beilehu Nursery Rhymes Téléchargez le didacticiel multi-images de chansons pour enfants : ouvrez le logiciel et sélectionnez une chanson pour enfants que vous souhaitez télécharger. L'éditeur prend comme exemple "Chansons classiques pour enfants". 2. Cliquez sur le bouton "Télécharger" sous l'étoile de la chanson pour enfants.

See all articles