Maison développement back-end tutoriel php PHP file_get_contents设置超时处理方法_PHP

PHP file_get_contents设置超时处理方法_PHP

Jun 01, 2016 am 11:59 AM
file_get_contents 超时处理

file_get_contents的超时处理

话说,从PHP5开始,file_get_content已经支持context了(手册上写着:5.0.0 Added the context support. ),也就是说,从5.0开始,file_get_contents其实也可以POST数据。

今天说的这篇是讲超时的,确实在跨服务器提交的时候,不可避免的会遇到超时的情况,这个时候怎么办?set_time_limit是没有用的,只有用context中的timeout时间来控制。相反,我们不是要抑止,而是要管理。比如在超时返回错误后,进行一次尝试,就象js中的 settimeout那样,对函数重新处理。错误超过3次或者5次后,我们就确实的认为无法连接服务器而彻底放弃。这,是一个好办法,应该值得推荐使用。其实。不全是file_get_contents,只要支持context的都应该加上,避免超时浪费时间。这样可以被支持的函数大致有:fsocketopen(该函数的最后一个参数。好象比较推荐在读stream的时候,使用stream_time_out函数进行控制),fopen(也是从PHP5开始加入context支持),file(PHP5加入支持),curl(curl有自已的变量 CURLOPT_TIMEOUT)等 。

在使用file_get_contents函数的时候,经常会出现超时的情况,在这里要通过查看一下错误提示,看看是哪种错误,比较常见的是读取超 时,这种情况大家可以通过一些方法来尽量的避免或者解决。这里就简单介绍两种:

一、增加超时的时间限制

这里需要注意:set_time_limit只是设置你的PHP程序的超时时间,而不是file_get_contents函数读取URL的超时时 间。

我一开始以为set_time_limit也能影响到file_get_contents,后来经测试,是无效的。真正的修改 file_get_contents延时可以用resource $context的timeout参数:

复制代码 代码如下:
$opts = array(  
  'http'=>array(  
    'method'=>"GET",  
    'timeout'=>1,//单位秒 
   )  
);   

 $cnt=0;  
while($cntecho $cnt;  
echo $bb; 

二、一次有延时的话那就多试几次

有时候失败是因为网络等因素造成,没有解决办法,但是可以修改程序,失败时重试几次,仍然失败就放弃,因为file_get_contents()如果失 败将返回 FALSE,所以可以下面这样编写代码:

复制代码 代码如下:
$cnt=0;  
 while($cnt

以上方法对付超时已经OK了。那么Post呢?细心点有人发现了'method'=>”GET”, 对!是不是能设置成post呢?百度找了下相关资料,还真可以!而且有人写出了山寨版的post传值函数,如下:

复制代码 代码如下:
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' => 'admin@admin.com',  
    'submit' => 'submit',  
);  
echo Post ( 'http://www.bitsCN.com', $data ); 

OK , 上面函数完美了,既解决了超时控制又解决了Post传值。

Déclaration de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
4 Il y a quelques semaines By DDD
Musée à deux points: toutes les expositions et où les trouver
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Comment résoudre PHP Avertissement : file_get_contents() : le nom du fichier ne peut pas être vide Comment résoudre PHP Avertissement : file_get_contents() : le nom du fichier ne peut pas être vide Aug 18, 2023 pm 07:30 PM

Comment résoudre PHPWarning : file_get_contents() : Filenamecannotbeempty Dans le processus de développement PHP, nous rencontrons souvent ce message d'erreur : PHPWarning : file_get_contents() : Filenamecannotbeempty. Cette erreur se produit généralement lors de l'utilisation de la fonction file_get_contents

Avertissement PHP : file_get_contents() : échec de l'ouverture du flux : échec de la requête HTTP Avertissement PHP : file_get_contents() : échec de l'ouverture du flux : échec de la requête HTTP Aug 18, 2023 pm 11:34 PM

Comment résoudre PHPWarning:file_get_contents():failedtoopenstream:HTTPrequestfailed Lors du développement PHP, nous rencontrons souvent des situations où des requêtes HTTP sont initiées vers des serveurs distants via la fonction file_get_contents. Cependant, nous rencontrons parfois un message d'erreur courant : PHPWarning : file_get_c

Fonction file_get_contents() de PHP : Comment lire le contenu d'un fichier Fonction file_get_contents() de PHP : Comment lire le contenu d'un fichier Nov 04, 2023 pm 01:43 PM

Fonction file_get_contents() de PHP : Comment lire le contenu d'un fichier, exemple de code spécifique En PHP, file_get_contents() est une fonction très utile qui nous permet de lire le contenu d'un fichier. Qu'il s'agisse de lire un fichier texte ou de lire du contenu à partir d'une URL distante, cette fonction peut facilement accomplir la tâche. Syntaxe La syntaxe de base de cette fonction est la suivante : stringfile_get_contents(string$f

Explication détaillée des fonctions de mise en cache de fichiers PHP : méthodes de traitement de mise en cache de fichiers de file_get_contents, file_put_contents, unlink et autres fonctions Explication détaillée des fonctions de mise en cache de fichiers PHP : méthodes de traitement de mise en cache de fichiers de file_get_contents, file_put_contents, unlink et autres fonctions Nov 18, 2023 am 09:37 AM

Explication détaillée des fonctions de mise en cache de fichiers PHP : méthodes de traitement de mise en cache de fichiers de file_get_contents, file_put_contents, unlink et d'autres fonctions, qui nécessitent des exemples de code spécifiques. Dans le développement Web, nous avons souvent besoin de lire des données à partir de fichiers ou d'écrire des données dans des fichiers. De plus, dans certains cas, nous devons mettre en cache le contenu des fichiers pour éviter les opérations fréquentes de lecture et d'écriture de fichiers, améliorant ainsi les performances. En PHP, il existe plusieurs fonctions couramment utilisées qui peuvent nous aider à implémenter la mise en cache des fichiers, notamment

Introduction à la fonction PHP — file_get_contents() : lit le contenu de l'URL dans une chaîne Introduction à la fonction PHP — file_get_contents() : lit le contenu de l'URL dans une chaîne Jul 24, 2023 pm 02:32 PM

Introduction à la fonction PHP — file_get_contents() : Lire le contenu de l'URL dans une chaîne. Dans le développement Web, il est souvent nécessaire d'obtenir des données d'un serveur distant ou de lire un fichier distant. PHP fournit une fonction très puissante file_get_contents(), qui peut facilement lire le contenu d'une URL et l'enregistrer dans une chaîne. Cet article présentera l'utilisation de la fonction file_get_contents() et donnera quelques exemples de code pour mieux aider les lecteurs.

Extensions PHP et WebDriver : comment gérer les délais d'attente et les échecs de chargement des pages Web Extensions PHP et WebDriver : comment gérer les délais d'attente et les échecs de chargement des pages Web Jul 08, 2023 pm 12:21 PM

Extensions PHP et WebDriver : comment gérer les délais d'attente et les échecs de chargement des pages Web Introduction : Les problèmes de réseau sont l'un des défis courants lors de l'utilisation d'outils de test d'automatisation Web. Lorsque nous utilisons le langage PHP combiné à l’extension WebDriver pour des tests automatisés, nous rencontrons souvent des délais d’attente ou des échecs de chargement de pages Web. Dans cet article, je vais expliquer comment utiliser PHP et l'extension WebDriver pour gérer ces problèmes, et fournir quelques exemples de code. 1. Définissez le délai de chargement de la page Web. Lors des tests automatisés, nous devons le faire.

Gestion des erreurs dans Golang : Comment gérer les erreurs de délai d'attente ? Gestion des erreurs dans Golang : Comment gérer les erreurs de délai d'attente ? Aug 07, 2023 pm 01:17 PM

Gestion des erreurs dans Golang : Comment gérer les erreurs de délai d'attente ? Introduction : Lors de l'écriture de programmes qui utilisent des requêtes réseau ou effectuent des opérations fastidieuses, nous rencontrons souvent des délais d'attente. Ces erreurs de délai d'attente peuvent être provoquées par des problèmes de connexion réseau, un traitement excessif des données ou des pannes de services externes. Dans Golang, nous pouvons utiliser certaines techniques pour gérer les erreurs de délai d'attente et garantir la robustesse et la fiabilité du programme. Cet article présentera quelques méthodes courantes de gestion des erreurs de délai d'attente et donnera des exemples de code correspondants. 1. Utilisez le forfait horaire Go

Comment lire le contenu d'un fichier à l'aide de la fonction file_get_contents en PHP Comment lire le contenu d'un fichier à l'aide de la fonction file_get_contents en PHP Jun 26, 2023 pm 12:01 PM

En PHP, nous avons souvent besoin de lire des données à partir de fichiers. Dans ce cas, nous pouvons utiliser la fonction file_get_contents. Cette fonction peut simplement lire tout ce qui se trouve dans un fichier et le renvoyer sous forme de chaîne. Ceci est très utile dans de nombreux scénarios, tels que la lecture de fichiers de configuration, la lecture de fichiers journaux, etc. Dans cet article, nous expliquerons comment lire le contenu d'un fichier à l'aide de la fonction file_get_contents en PHP. Étape 1 : Ouvrez le fichier à l'aide du fichier

See all articles