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

Solución al problema de tiempo de espera al realizar solicitudes remotas en PHP

php configuración de tiempo de espera de solicitud de dirección remota, principalmente explica cómo configurar el tiempo de espera de solicitud para los tres funciones comunes y sencillas file_get_contents, fopen, curl. Generalmente se recomienda usar curl, ya que tiene el mejor rendimiento y la mayor eficiencia.

1、file_get_contents configuración de tiempo de espera de solicitud

$timeout = array(
'http' => array(
'timeout' =>5//establecer un tiempo de espera, la unidad es segundo
)

$ctx = stream_context_create($timeout);
$text = file_get_contents("https://es.oldtoolbag.com/",0, $ctx);

2、fopen configuración de tiempo de espera de solicitud

$timeout = array(
'http' => array(
'timeout' => 5 //establecer un tiempo de espera, la unidad es segundo
)

$ctx = stream_context_create($timeout);
if ($fp = fopen("https://es.oldtoolbag.com/", "r", false, $ctx)) {
while( $c = fread($fp, 8192)) {
echo $c;
}
fclose($fp);
}

3, ajuste de tiempo de espera de solicitud curl

CURL es una librería comúnmente utilizada para acceder a interfaces de protocolo HTTP, con alto rendimiento y algunas funciones de soporte de concurrencia.

curl_setopt($ch, opt) puede configurar algunos ajustes de tiempo de espera, entre ellos:

a、CURLOPT_TIMEOUT establece el tiempo máximo en segundos que cURL permite ejecutar.

b、CURLOPT_TIMEOUT_MS establece el tiempo máximo en milisegundos que cURL permite ejecutar.

c、CURLOPT_CONNECTTIMEOUT es el tiempo de espera antes de establecer la conexión. Si se establece en 0, se espera de manera ilimitada.

d、CURLOPT_CONNECTTIMEOUT_MS es el tiempo de espera para intentar conectar, en milisegundos. Si se establece en 0, se espera de manera ilimitada. e、CURLOPT_DNS_CACHE_TIMEOUT establece el tiempo que se guardan los datos DNS en memoria, el valor predeterminado es120 segundos.

$ch = curl_init();

curl_setopt($ch, CURLOPT_RETURNTRANSFER,1
curl_setopt($ch, CURLOPT_TIMEOUT,60);  //Basta con establecer una cantidad de segundos.
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_USERAGENT, $defined_vars['HTTP_USER_AGENT']);

Aquí termina todo el contenido de la solución que el editor les ha traído sobre cómo configurar el tiempo de espera de conexión para las solicitudes PHP, esperamos que todos nos apoyen y alentemos el tutorial~

Te gustará