English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Solution pour résoudre le problème de délai d'expiration de la requête PHP vers l'adresse distante

Configuration du délai d'attente pour l'adresse distante de la requête php, principalement expliquant les méthodes de réglage du délai d'attente pour les trois fonctions courantes et simples file_get_contents, fopen, curl. En règle générale, il est recommandé d'utiliser curl, car il offre la meilleure performance et l'efficacité la plus élevée.

1、réglage du délai d'attente pour la requête file_get_contents

$timeout = array(
'http' => array(
'timeout' =>5//Définir un délai d'attente, unité en secondes
)

$ctx = stream_context_create($timeout);
$text = file_get_contents("https://fr.oldtoolbag.com/"", 0, $ctx);

2、réglage du délai d'attente pour la requête fopen

$timeout = array(
'http' => array(
'timeout' => 5 //Définir un délai d'attente, unité en secondes
)

$ctx = stream_context_create($timeout);
if ($fp = fopen("https://fr.oldtoolbag.com/"", "r", false, $ctx)) {
while( $c = fread($fp, 8192}) {
echo $c;
}
fclose($fp);
}

3, réglage du délai d'attente de la requête CURL

CURL est une bibliothèque lib couramment utilisée pour accéder aux interfaces HTTP, avec une performance élevée et certaines fonctionnalités de support concurrent.

curl_setopt($ch, opt) peut configurer quelques réglages de délai d'attente, principalement :

a 、CURLOPT_TIMEOUT réglé pour le nombre maximal de secondes autorisé par cURL.

b、CURLOPT_TIMEOUT_MS réglé pour le nombre maximal de millisecondes autorisé par cURL.

c、 CURLOPT_CONNECTTIMEOUT est le temps d'attente avant de lancer la connexion. Si il est réglé à 0, il attend indéfiniment.

d、 CURLOPT_CONNECTTIMEOUT_MS est le temps d'attente pour essayer de se connecter, en millisecondes. Si il est réglé à 0, il attend indéfiniment. e、 CURLOPT_DNS_CACHE_TIMEOUT réglé pour le temps de conservation des informations DNS en mémoire, par défaut c'est120 secondes.

$ch = curl_init();

curl_setopt($ch, CURLOPT_RETURNTRANSFER,1
curl_setopt($ch, CURLOPT_TIMEOUT,60);  //Il suffit de définir un nombre de secondes.
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_USERAGENT, $defined_vars['HTTP_USER_AGENT']);

Voici la solution complète que l'éditeur vous présente pour régler le problème de la configuration du délai d'attente de la requête distante PHP, espérons que vous soutiendrez fortement le tutoriel criant~

Vous pourriez aussi aimer