Maison >développement back-end >tutoriel php >Comment configurer les délais d'attente dans `file_get_contents()` pour le bouclage des liens ?

Comment configurer les délais d'attente dans `file_get_contents()` pour le bouclage des liens ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-28 19:05:10526parcourir

How to Configure Timeouts in `file_get_contents()` for Looping Through Links?

Paramètres de délai d'expiration dans file_get_contents()

Lors de l'utilisation de file_get_contents() dans une boucle pour récupérer le contenu de plusieurs liens, il est crucial de prendre en compte le potentiel délais d'attente.

File_get_contents() Délai d'expiration Période :

Oui, file_get_contents() a un délai d'expiration par défaut défini par le paramètre initial default_socket_timeout, qui est défini sur 60 secondes (1 minute). Cela signifie que si une connexion à une ressource distante prend plus de 60 secondes à établir, file_get_contents() expirera.

Personnalisation du délai d'expiration :

Pour remplacer la valeur par défaut timeout, vous pouvez utiliser les méthodes suivantes :

  • ini_set() : Ajustez le paramètre default_socket_timeout à la volée. Par exemple, pour définir un délai d'expiration de 15 minutes :
ini_set('default_socket_timeout', 900); // 900 Seconds = 15 Minutes
  • stream_context_create() : créez un contexte HTTP et spécifiez le délai d'expiration en tant qu'options de contexte HTTP :
$ctx = stream_context_create(array('http' =>
    array(
        'timeout' => 1200,  //1200 Seconds is 20 Minutes
    )
));

echo file_get_contents('http://example.com/', false, $ctx);

En définissant un délai d'attente personnalisé, vous pouvez vous assurer que file_get_contents() attend un période spécifiée avant l’expiration. Cela vous donne un meilleur contrôle sur le comportement de votre script et l'empêche de passer prématurément au lien suivant.

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:
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