Heim Backend-Entwicklung PHP-Tutorial 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传值。

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So lösen Sie PHP-Warnung: file_get_contents(): Dateiname darf nicht leer sein So lösen Sie PHP-Warnung: file_get_contents(): Dateiname darf nicht leer sein Aug 18, 2023 pm 07:30 PM

So lösen Sie PHPWarning: file_get_contents(): Filenamecannotbeempty Im Prozess der PHP-Entwicklung stoßen wir häufig auf diese Fehlermeldung: PHPWarning: file_get_contents(): Filenamecannotbeempty. Dieser Fehler tritt normalerweise bei Verwendung der Funktion file_get_contents auf

如何解决PHP-Warnung: file_get_contents(): Fehler beim Öffnen des Streams: HTTP-Anfrage fehlgeschlagen 如何解决PHP-Warnung: file_get_contents(): Fehler beim Öffnen des Streams: HTTP-Anfrage fehlgeschlagen Aug 18, 2023 pm 11:34 PM

So lösen Sie PHPWarning:file_get_contents():failedtoopenstream:HTTPrequestfailed Während der PHP-Entwicklung stoßen wir häufig auf Situationen, in denen HTTP-Anfragen an Remote-Server über die Funktion file_get_contents initiiert werden. Manchmal stoßen wir jedoch auf eine häufige Fehlermeldung: PHPWarning: file_get_c

PHPs file_get_contents()-Funktion: So lesen Sie Inhalte aus einer Datei PHPs file_get_contents()-Funktion: So lesen Sie Inhalte aus einer Datei Nov 04, 2023 pm 01:43 PM

PHPs file_get_contents()-Funktion: So lesen Sie Inhalte aus einer Datei, spezifisches Codebeispiel. In PHP ist file_get_contents() eine sehr nützliche Funktion, die es uns ermöglicht, Inhalte aus einer Datei zu lesen. Unabhängig davon, ob Sie eine Textdatei lesen oder Inhalte von einer Remote-URL lesen, kann diese Funktion die Aufgabe problemlos erledigen. Syntax Die grundlegende Syntax dieser Funktion lautet wie folgt: stringfile_get_contents(string$f

Detaillierte Erläuterung der PHP-Datei-Caching-Funktionen: Datei-Caching-Verarbeitungsmethoden von file_get_contents, file_put_contents, unlink und anderen Funktionen Detaillierte Erläuterung der PHP-Datei-Caching-Funktionen: Datei-Caching-Verarbeitungsmethoden von file_get_contents, file_put_contents, unlink und anderen Funktionen Nov 18, 2023 am 09:37 AM

Ausführliche Erläuterung der PHP-Datei-Caching-Funktionen: Datei-Caching-Verarbeitungsmethoden von file_get_contents, file_put_contents, unlink und andere Funktionen, die spezifische Codebeispiele erfordern. In der Webentwicklung müssen wir häufig Daten aus Dateien lesen oder Daten in Dateien schreiben. Darüber hinaus müssen wir in einigen Fällen den Inhalt von Dateien zwischenspeichern, um häufige Lese- und Schreibvorgänge für Dateien zu vermeiden und so die Leistung zu verbessern. In PHP gibt es mehrere häufig verwendete Funktionen, die uns bei der Implementierung des Datei-Cachings helfen können, darunter

Einführung in die PHP-Funktion – file_get_contents(): Liest den Inhalt der URL in einen String Einführung in die PHP-Funktion – file_get_contents(): Liest den Inhalt der URL in einen String Jul 24, 2023 pm 02:32 PM

Einführung in die PHP-Funktion – file_get_contents(): Lesen Sie den Inhalt der URL in einen String. Bei der Webentwicklung ist es häufig erforderlich, Daten von einem Remote-Server abzurufen oder eine Remote-Datei zu lesen. PHP bietet eine sehr leistungsstarke Funktion file_get_contents(), die bequem den Inhalt einer URL lesen und in einem String speichern kann. In diesem Artikel wird die Verwendung der Funktion file_get_contents() vorgestellt und einige Codebeispiele gegeben, um den Lesern eine bessere Hilfe zu bieten

PHP- und WebDriver-Erweiterungen: Umgang mit Zeitüberschreitungen und Fehlern beim Laden von Webseiten PHP- und WebDriver-Erweiterungen: Umgang mit Zeitüberschreitungen und Fehlern beim Laden von Webseiten Jul 08, 2023 pm 12:21 PM

PHP- und WebDriver-Erweiterungen: Umgang mit Zeitüberschreitungen und Fehlern beim Laden von Webseiten Einführung: Netzwerkprobleme gehören zu den häufigsten Herausforderungen bei der Verwendung von Web-Automatisierungstesttools. Wenn wir die PHP-Sprache in Kombination mit der WebDriver-Erweiterung für automatisierte Tests verwenden, kommt es häufig zu Zeitüberschreitungen oder Fehlern beim Laden von Webseiten. In diesem Artikel erkläre ich, wie man PHP und die WebDriver-Erweiterung zur Behebung dieser Probleme verwendet, und stelle einige Codebeispiele bereit. 1. Legen Sie das Zeitlimit für das Laden der Webseite fest. Bei automatisierten Tests müssen wir dies tun

Fehlerbehandlung in Golang: Wie gehe ich mit Timeout-Fehlern um? Fehlerbehandlung in Golang: Wie gehe ich mit Timeout-Fehlern um? Aug 07, 2023 pm 01:17 PM

Fehlerbehandlung in Golang: Wie gehe ich mit Timeout-Fehlern um? Einführung: Beim Schreiben von Programmen, die Netzwerkanforderungen verwenden oder zeitaufwändige Vorgänge ausführen, kommt es häufig zu Zeitüberschreitungen. Diese Zeitüberschreitungsfehler können durch Netzwerkverbindungsprobleme, die Verarbeitung großer Datenmengen oder Ausfälle externer Dienste verursacht werden. In Golang können wir einige Techniken verwenden, um Timeout-Fehler zu behandeln und die Robustheit und Zuverlässigkeit des Programms sicherzustellen. In diesem Artikel werden einige gängige Methoden zur Behandlung von Timeout-Fehlern vorgestellt und entsprechende Codebeispiele gegeben. 1. Nutzen Sie das Zeitpaket Go

So lesen Sie Dateiinhalte mit der Funktion file_get_contents in PHP So lesen Sie Dateiinhalte mit der Funktion file_get_contents in PHP Jun 26, 2023 pm 12:01 PM

In PHP müssen wir häufig Daten aus Dateien lesen. In diesem Fall können wir die Funktion file_get_contents verwenden. Diese Funktion kann einfach alles aus einer Datei lesen und als String zurückgeben. Dies ist in vielen Szenarien sehr nützlich, z. B. beim Lesen von Konfigurationsdateien, beim Lesen von Protokolldateien usw. In diesem Artikel erklären wir, wie man Dateiinhalte mit der Funktion file_get_contents in PHP liest. Schritt 1: Öffnen Sie die Datei mit file

See all articles