PHP file_get_contents设置超时处理方法_PHP
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传值。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

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

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

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(): 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 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? 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

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
