


Le fichier de téléchargement Curl affiche une barre de progression en temps réel (avec code)
Cette fois, je vais vous proposer un affichage de la barre de progression en temps réel pour les fichiers téléchargés Curl (avec code). Quelles sont les précautions pour que les fichiers téléchargés Curl affichent une barre de progression en temps réel. un cas pratique, jetons un coup d'oeil.
Préface
Récemment, j'ai bricolé la programmation en ligne de commande. Le téléchargement de fichiers est toujours un processus ardu. mieux s'il y avait une barre de progression. ! !
Tout d'abord, c'est bien d'obtenir un pack d'extension de barre de progression https://github.com/dariuszp/cli-progress-bar (téléchargement local)
Rendu :
C'est quand même plutôt beau !
A quoi sert curl ?
Utilisez php, curl récupère principalement des données, bien sûr nous pouvons utiliser d'autres méthodes pour les récupérer, Par exemple, fsockopen, file_get_contents, etc. Mais il ne peut capturer que les pages accessibles directement. Si vous souhaitez capturer des pages avec Contrôle d'accès, ou des pages après vous être connecté, ce sera plus difficile.
curl utilise
curl comme méthode de téléchargement très courante pour PHP, voici une façon simple de l'utiliser
// 初始化一个 curl $ch = curl_init(); // 设置请求的 url curl_setopt($ch, CURLOPT_URL, $url); // curl_setopt($ch, CURLOPT_HEADER, 0); // 不直接输出,而是通过 curl_exec 返回 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); if (false === ($stream = curl_exec($ch))) { throw new \Exception(curl_errno($ch)); } curl_close($ch); return $stream;
class Request { protected $bar; // 是否下载完成 protected $downloaded = false; public function construct() { // 初始化一个进度条 $this->bar = new CliProgressBar(100); $this->bar->display(); $this->bar->setColorToRed(); } function download($url) { $ch = curl_init(); // 从配置文件中获取根路径 curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0); // 开启进度条 curl_setopt($ch, CURLOPT_NOPROGRESS, 0); // 进度条的触发函数 curl_setopt($ch, CURLOPT_PROGRESSFUNCTION, 'progress'); // ps: 如果目标网页跳转,也跟着跳转 // curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); if (false === ($stream = curl_exec($ch))) { throw new \Exception(curl_errno($ch)); } curl_close($ch); return $stream; } /** * 进度条下载. * * @param $ch * @param $countDownloadSize 总下载量 * @param $currentDownloadSize 当前下载量 * @param $countUploadSize * @param $currentUploadSize */ public function progress($ch, $countDownloadSize, $currentDownloadSize, $countUploadSize, $currentUploadSize) { // 等于 0 的时候,应该是预读资源不等于0的时候即开始下载 // 这里的每一个判断都是坑,多试试就知道了 if (0 === $countDownloadSize) { return false; } // 有时候会下载两次,第一次很小,应该是重定向下载 if ($countDownloadSize > $currentDownloadSize) { $this->downloaded = false; // 继续显示进度条 } // 已经下载完成还会再发三次请求 elseif ($this->downloaded) { return false; } // 两边相等下载完成并不一定结束, elseif ($currentDownloadSize === $countDownloadSize) { return false; } // 开始计算 $bar = $currentDownloadSize / $countDownloadSize * 100; $this->bar->progress($bar); } } (new Request)->download('http://www.shiguopeng.cn/database.sql');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
Explication détaillée des étapes pour ajouter dynamiquement des données XML avec PHP
CMSPRESS implémente une classification illimitée (avec code)
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

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 !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Sujets chauds

Lorsque vous cliquez sur le champ de recherche dans Windows 11, l'interface de recherche se développe automatiquement. Il affiche une liste des programmes récents à gauche et du contenu Web à droite. Microsoft y affiche des actualités et du contenu tendance. Le chèque d'aujourd'hui fait la promotion de la nouvelle fonctionnalité de génération d'images DALL-E3 de Bing, de l'offre « Chat Dragons with Bing », de plus d'informations sur les dragons, des principales actualités de la section Web, des recommandations de jeux et de la section Recherche de tendances. La liste complète des éléments est indépendante de votre activité sur votre ordinateur. Bien que certains utilisateurs puissent apprécier la possibilité de consulter les actualités, tout cela est abondamment disponible ailleurs. D'autres peuvent directement ou indirectement le classer comme promotion ou même publicité. Microsoft utilise des interfaces pour promouvoir son propre contenu,

Le système d'exploitation Windows 11 de Microsoft peut afficher périodiquement des suggestions sous forme de fenêtres contextuelles sur votre ordinateur à l'aide du système de notification. Le système de suggestions, initialement conçu pour fournir aux utilisateurs des conseils et des suggestions pour améliorer leurs flux de travail Windows 11, s'est presque entièrement transformé en un système publicitaire visant à promouvoir les services et produits Microsoft. Les fenêtres contextuelles de suggestion peuvent annoncer un abonnement Microsoft 365 aux utilisateurs, suggérer de lier un téléphone Android à l'appareil ou configurer une solution de sauvegarde. Si ces fenêtres contextuelles vous ennuient, vous pouvez modifier votre système pour les désactiver complètement. Le guide suivant fournit des recommandations sur la désactivation des fenêtres contextuelles sur les appareils exécutant le système d'exploitation Windows 11 de Microsoft.

Pour mettre à jour la version curl sous Linux, vous pouvez suivre les étapes ci-dessous : Vérifiez la version actuelle de curl : Tout d'abord, vous devez déterminer la version de curl installée dans le système actuel. Ouvrez un terminal et exécutez la commande suivante : curl --version Cette commande affichera les informations sur la version actuelle de curl. Confirmer la version curl disponible : Avant de mettre à jour curl, vous devez confirmer la dernière version disponible. Vous pouvez visiter le site officiel de curl (curl.haxx.se) ou des sources de logiciels associées pour trouver la dernière version de curl. Téléchargez le code source de curl : à l'aide de curl ou d'un navigateur, téléchargez le fichier de code source pour la version curl de votre choix (généralement .tar.gz ou .tar.bz2).

Avec le développement continu de la technologie Internet, le streaming vidéo en temps réel est devenu une application importante dans le domaine Internet. Pour réaliser un streaming vidéo en temps réel, les technologies clés incluent WebSocket et Java. Cet article explique comment utiliser WebSocket et Java pour implémenter la lecture en streaming vidéo en temps réel et fournit des exemples de code pertinents. 1. Qu'est-ce que WebSocket ? WebSocket est un protocole de communication full-duplex sur une seule connexion TCP. Il est utilisé sur le Web.

Comment gérer la redirection 301 des pages web dans PHPCurl ? Lorsque vous utilisez PHPCurl pour envoyer des requêtes réseau, vous rencontrerez souvent un code d'état 301 renvoyé par la page Web, indiquant que la page a été redirigée définitivement. Afin de gérer correctement cette situation, nous devons ajouter des options spécifiques et une logique de traitement à la requête Curl. Ce qui suit présentera en détail comment gérer la redirection 301 des pages Web dans PHPCurl et fournira des exemples de code spécifiques. Principe de traitement de la redirection 301 La redirection 301 signifie que le serveur renvoie un 30

Que se passe-t-il lorsque la disposition du bureau est verrouillée ? Lors de l'utilisation de l'ordinateur, nous pouvons parfois rencontrer une situation dans laquelle la disposition du bureau est verrouillée. Ce problème signifie que nous ne pouvons pas ajuster librement la position des icônes du bureau ou modifier l'arrière-plan du bureau. Alors, que se passe-t-il exactement lorsqu'il est indiqué que la disposition du bureau est verrouillée ? 1. Comprendre la disposition du bureau et les fonctions de verrouillage. Tout d’abord, nous devons comprendre les deux concepts de disposition du bureau et de verrouillage du bureau. La disposition du bureau fait référence à la disposition de divers éléments sur le bureau, notamment les raccourcis, les dossiers, les widgets, etc. nous pouvons être libres

Utiliser C++ pour implémenter les fonctions de traitement audio et vidéo en temps réel des systèmes embarqués La gamme d'applications des systèmes embarqués est de plus en plus étendue, notamment dans le domaine du traitement audio et vidéo, où la demande est croissante. Face à une telle demande, utiliser le langage C++ pour implémenter les fonctions de traitement audio et vidéo en temps réel des systèmes embarqués est devenu un choix courant. Cet article présentera comment utiliser le langage C++ pour développer des fonctions de traitement audio et vidéo en temps réel de systèmes embarqués, et donnera des exemples de code correspondants. Afin de réaliser la fonction de traitement audio et vidéo en temps réel, vous devez d'abord comprendre le processus de base du traitement audio et vidéo. D'une manière générale, l'audio et la vidéo

JavaScript et WebSocket : Construire un système efficace de prévisions météorologiques en temps réel Introduction : Aujourd'hui, la précision des prévisions météorologiques revêt une grande importance pour la vie quotidienne et la prise de décision. À mesure que la technologie évolue, nous pouvons fournir des prévisions météorologiques plus précises et plus fiables en obtenant des données météorologiques en temps réel. Dans cet article, nous apprendrons comment utiliser la technologie JavaScript et WebSocket pour créer un système efficace de prévisions météorologiques en temps réel. Cet article démontrera le processus de mise en œuvre à travers des exemples de code spécifiques. Nous
