Heim > Artikel > Backend-Entwicklung > Lösung für die Zeitüberschreitung bei der PHP-Remote-Adresseinstellung
In diesem Artikel wird hauptsächlich die Lösung zum Festlegen des Zeitlimits für die Anforderung einer Remote-Adresse durch PHP vorgestellt. Ich hoffe, dass er für alle hilfreich ist.
PHP fordert die Remote-Adresse an, um das Timeout für drei einfache allgemeine Funktionen festzulegen: file_get_contents, fopen und curl. Im Allgemeinen wird die Verwendung von Curl empfohlen beste Leistung und höchste Effizienz.
1. file_get_contents-Anfrage-Timeout-Einstellung
$timeout = array( 'http'=> array( 'timeout'=>5//设置一个超时时间,单位为秒 ) ); $ctx = stream_context_create($timeout); $text = file_get_contents("http://www.jb51.net/",0, $ctx);
2. fopen-Anfrage-Timeout-Einstellung
$timeout = array( 'http' => array( 'timeout' => 5 //设置一个超时时间,单位为秒 ) ); $ctx = stream_context_create($timeout); if ($fp = fopen("http://www.jb51.net/", "r", false, $ctx)) { while( $c = fread($fp, 8192)) { echo $c; } fclose($fp); }
3. Curl-Anfrage-Timeout Einstellungen
CURL ist eine häufig verwendete Bibliothek für den Zugriff auf die HTTP-Protokollschnittstelle mit hoher Leistung und einigen Funktionen zur Unterstützung der Parallelität.
curl_setopt($ch, opt) kann einige Timeout-Einstellungen festlegen, hauptsächlich einschließlich:
a, CURLOPT_TIMEOUT legt die maximale Anzahl von Sekunden fest, die cURL ausführen darf.
b. CURLOPT_TIMEOUT_MS legt die maximale Anzahl von Millisekunden fest, die cURL ausführen darf.
c. CURLOPT_CONNECTTIMEOUT Die Zeit, die vor dem Herstellen einer Verbindung gewartet werden soll. Wenn sie auf 0 gesetzt ist, wird auf unbestimmte Zeit gewartet.
d. CURLOPT_CONNECTTIMEOUT_MS Die Zeit, die auf einen Verbindungsversuch gewartet wird, in Millisekunden. Wenn auf 0 gesetzt, unendlich warten. e. CURLOPT_DNS_CACHE_TIMEOUT legt die Zeit zum Speichern von DNS-Informationen im Speicher fest. Der Standardwert beträgt 120 Sekunden.
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_TIMEOUT,60); //只需要设置一个秒的数量就可以 curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_USERAGENT, $defined_vars['HTTP_USER_AGENT']);
Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Studium aller hilfreich sein wird.
Verwandte Empfehlungen:
So implementieren Sie die hexadezimale Farbzufallsgeneratorfunktion in PHP
Praktisches PHP-Tutorial zu Filter-, Verifizierungs-, Escape- und Passwortmethoden
phpimplementiert DES-Verschlüsselung und -Entschlüsselung im Einklang mit der c#-Methode
Das obige ist der detaillierte Inhalt vonLösung für die Zeitüberschreitung bei der PHP-Remote-Adresseinstellung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!