Heim  >  Artikel  >  Backend-Entwicklung  >  Lösung für die Zeitüberschreitung bei der PHP-Remote-Adresseinstellung

Lösung für die Zeitüberschreitung bei der PHP-Remote-Adresseinstellung

墨辰丷
墨辰丷Original
2018-05-31 09:52:481960Durchsuche

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!

Stellungnahme:
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