English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP请求远程地址设置超时时间的解决方法

L'impostazione del tempo di timeout per l'indirizzo remoto della richiesta PHP, che spiega principalmente i metodi di impostazione del tempo di timeout per le tre funzioni semplici e comuni file_get_contents, fopen, curl. Di solito si consiglia di utilizzare curl, con prestazioni migliori e più efficiente.

1. Impostazione di timeout per la richiesta file_get_contents

$timeout = array(
'http' => array(
'timeout'=>5// Impostare un tempo di timeout, unità in secondi
)
);
$ctx = stream_context_create($timeout);
$text = file_get_contents("https://it.oldtoolbag.com/",0, $ctx);

2. Impostazione di timeout per la richiesta fopen

$timeout = array(
'http' => array(
'timeout' => 5 // Impostare un tempo di timeout, unità in secondi
)
);
$ctx = stream_context_create($timeout);
if ($fp = fopen("https://it.oldtoolbag.com/", "r", false, $ctx)) {
while( $c = fread($fp, 8192)) {
echo $c;
}
fclose($fp);
}

3. Impostazione di timeout per la richiesta CURL

CURL è una libreria di libreria comunemente utilizzata per accedere agli interfacce del protocollo HTTP, con prestazioni elevate e alcune funzionalità di supporto per la concorrenza.

curl_setopt($ch, opt) può impostare alcune impostazioni di timeout, tra cui:

a、CURLOPT_TIMEOUT imposta il numero massimo di secondi che cURL può eseguire.

b、CURLOPT_TIMEOUT_MS imposta il numero massimo di millisecondi che cURL può eseguire.

c、CURLOPT_CONNECTTIMEOUT è il tempo di attesa prima di stabilire la connessione. Se impostato a 0, aspetta infinitamente.

d、CURLOPT_CONNECTTIMEOUT_MS è il tempo di attesa per il tentativo di connessione in millisecondi. Se impostato a 0, aspetta infinitamente. e、CURLOPT_DNS_CACHE_TIMEOUT imposta il tempo di conservazione delle informazioni DNS nella memoria, predefinito a 120 secondi.

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT,60);  //Basta impostare un numero di secondi
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_USERAGENT, $defined_vars['HTTP_USER_AGENT']);

Questo è tutto il contenuto della soluzione che l'editor vi ha portato per impostare il tempo di scadenza della richiesta remota PHP, spero che riceviate molto supporto e incoraggiamento dalle lezioni~