stream_set_timeout

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

stream_set_timeoutEstablecer un perido de tiempo de espera en un flujo

Descripción

stream_set_timeout(resource $stream, int $seconds, int $microseconds = 0): bool

Establece el valor del tiempo de espera en stream, expresado como la suma de seconds y microseconds.

Cuando el flujo agota el tiempo de espera, la clave 'timed_out' de la matriz devuelta por stream_get_meta_data() se establece a true, aunque no se genere un error/advertencia.

Parámetros

stream

El flujo objetivo.

seconds

La parte de segundos del tiempo de espera a establecer.

microseconds

La parte de microsegundos del tiempo de espera a establecer.

Valores devueltos

Devuelve true en caso de éxito o false en caso de error.

Historial de cambios

Versión Descripción
4.3.0 A partira de PHP 4.3, esta función pude (potencialmente) trabajar con cualquier tipo de flujos. En PHP 4.3, los sockets basados en flujos son aún el único tipo soportado en el núcleo de PHP, aunque los flujos de otras extensiones pueden soportar esta función.

Ejemplos

Ejemplo #1 Ejemplo de stream_set_timeout()

<?php
$fp 
fsockopen("www.example.com"80);
if (!
$fp) {
    echo 
"No se puede abrir\n";
} else {

    
fwrite($fp"GET / HTTP/1.0\r\n\r\n");
    
stream_set_timeout($fp2);
    
$res fread($fp2000);

    
$info stream_get_meta_data($fp);
    
fclose($fp);

    if (
$info['timed_out']) {
        echo 
'¡La conexión agotó el tiempo de espera!';
    } else {
        echo 
$res;
    }

}
?>

Notas

Nota:

Esta función no funciona con operaciones avanzadas como stream_socket_recvfrom(), use stream_select() con el parámetro tiempo de espera (timeout) en su lugar.

Esta función se llamaba anteriormente set_socket_timeout() y después socket_set_timeout() pero este uso está obsoleto.

Ver también

  • fsockopen() - Abre una conexión vía sockets a Internet o a un dominio Unix
  • fopen() - Abre un fichero o un URL