Concernant l'utilisation avancée de file_get_contents, résolvez d'abord le problème de timeout de file_get_contents. Après que le timeout ait renvoyé une erreur, essayez comme settimeout dans js. Après plus de 3 ou 5 erreurs, il est confirmé que le serveur. ne peut pas être connecté complètement.
Voici deux solutions simples :
1 Augmentez le délai d'attente
Remarque : set_time_limit est simplement défini. le délai d'attente de votre programme PHP, pas le délai d'attente de la fonction file_get_contents pour lire l'URL.
Au départ, je pensais que set_time_limit pouvait également affecter file_get_contents, mais après test, il n'était pas valide. Pour véritablement modifier le délai file_get_contents, vous pouvez utiliser le paramètre timeout de la ressource $context :
Le code du programme PHP est le suivant :
$opts = array( 'http'=>array( 'method'=>"GET", 'timeout'=>60, ) ); $context = stream_context_create($opts); $html =file_get_contents('http://www.php.cn', false, $context); fpassthru($fp);
2. Plus essayé
Le code du programme PHP est le suivant :
$cnt=0; while($cnt < 3 && ($str=@file_get_contents('http...'))===FALSE){ $cnt++; }
La méthode ci-dessus est correcte à gérer délais d'attente. Ensuite, nous démontrerons l'utilisation de file_get_contents pour implémenter Post, comme suit :
Code du programme PHP
function Post($url, $post = null){ $context = array(); if (is_array($post)) { ksort($post); $context['http'] = array ( 'timeout'=>60, 'method' => 'POST', 'content' => http_build_query($post, '', '&'), ); } return file_get_contents($url, false, stream_context_create($context)); } $data = array ( 'name' => 'test', 'email' => 'test@gmail.com', 'submit' => 'submit', ); echo Post('http://www.php.cn', $data);
Faites attention à Set_time_out dans l'en-tête du document, sinon le le document entier expirera.
Recommandations associées :
Explication détaillée de la différence entre php fopen() et file_get_contents()
CURL est meilleur que file_get_contents() en php Explication détaillée des exemples
10 articles recommandés sur file_get_contents
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!