


[Accès HTTP]
Généralement, nous accédons à HTTP de plusieurs manières, principalement : curl, socket, file_get_contents() et d'autres méthodes.
Si le serveur de l'autre partie ne répond jamais, nous serons dans une tragédie. Il est facile de tuer tout le serveur, nous devons donc également prendre en compte le problème du délai d'attente lors de l'accès à http.
[Accès CURL HTTP]
CURL est une bibliothèque lib couramment utilisée et fiable pour accéder à l'interface du protocole HTTP, avec des performances élevées et certaines fonctions de concurrence, etc.
CURL :
curl_setopt($ch, opt) peut définir certains paramètres de délai d'attente, notamment :
CURLOPT_TIMEOUT Set le nombre maximum de secondes pendant lesquelles cURL est autorisé à s'exécuter.
CURLOPT_TIMEOUT_MS définit le nombre maximum de millisecondes pendant lesquelles cURL est autorisé à s'exécuter. (Ajouté dans cURL 7.16.2. Disponible à partir de PHP 5.2.3.)
CURLOPT_CONNECTTIMEOUT Le temps d'attente avant d'initier une connexion S'il est défini sur 0, il attendra infiniment.
CURLOPT_CONNECTTIMEOUT_MS Le temps d'attente pour une tentative de connexion, en millisecondes. S'il est défini sur 0, attendez indéfiniment. Ajouté dans cURL 7.16.2. Disponible à partir de PHP 5.2.3.
CURLOPT_DNS_CACHE_TIMEOUT définit l'heure de sauvegarde des informations DNS en mémoire, la valeur par défaut est de 120 secondes.
délai d'expiration normal de deuxième niveau :
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 60); //Il vous suffit de définir le nombre de secondes
curl_setopt( $ ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_USERAGENT, $defined_vars['HTTP_USER_AGENT']);
curl utilisation normale du délai d'attente de deuxième niveau :
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
Si un délai d'attente d'une milliseconde est requis pour curl, vous devez ajouter :
curl_easy_setopt( curl, CURLOPT_NOSIGNAL, 1L ; Un exemple de curl avec un timeout d'une milliseconde :
<?php if (!isset($_GET['foo'])) { // Client $ch = curl_init('http://example.com/'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_NOSIGNAL, 1); //注意,毫秒超时一定要设置这个 curl_setopt($ch, CURLOPT_TIMEOUT_MS, 200); //超时毫秒,cURL 7.16.2中被加入。从PHP 5.2.3起可使用 $data = curl_exec($ch); $curl_errno = curl_errno($ch); $curl_error = curl_error($ch); curl_close($ch); if ($curl_errno > 0) { echo "cURL Error ($curl_errno): $curl_error\n"; } else { echo "Data received: $data\n"; } } else { // Server sleep(10); echo "Done."; } ?>Quelques autres conseils : Selon l'expérience, le résumé est. : cURL version >= libcurl/7.21. Dans la version 0, le délai d'attente en millisecondes prendra définitivement effet, rappelez-vous.
2. Il y a aussi un problème avec le délai d'attente en millisecondes de curl_multi. . Un seul accès prend en charge le délai d'expiration au niveau MS, et curl_multi sera inexact si plusieurs appels sont effectués en parallèle
[Accès HTTP via le traitement de flux]
En plus de curl , nous le faisons souvent aussi nous-mêmes. Utilisez fsockopen ou la fonction d'opération de fichier pour traiter le protocole HTTP, donc notre traitement du délai d'attente pour cela est également nécessaire. Tutoriel recommandé :Tutoriel vidéo PHP
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

Version crackée d'EditPlus en chinois
Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code

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

Version Mac de WebStorm
Outils de développement JavaScript utiles

ZendStudio 13.5.1 Mac
Puissant environnement de développement intégré PHP

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