Continuación de los ejemplos...
Si quieres obtener una URL remota, pero no quieres esperar demasiado tiempo si el servidor remoto está ocupado o lento.
Configurar tiempo limite con file_get_contents() Nota: Estableceremos el tiempo limite a 15 segundos
Código PHP:
Ver original<?php
ini_set('default_socket_timeout', 15); echo $page;
// o se puede limitar también
// Ejemplo de uso lo podemos ver en
// http://www.forosdelweb.com/f18/file_get_contents-falla-947572/
Configurar tiempo limite con cURL Nota: Estableceremos el tiempo limite a 15 segundos
Configurar tiempo limite con HTTP_Request Nota: Estableceremos el tiempo limite a 15 segundos
Código PHP:
Ver original<?php
require_once 'HTTP/Request.php';
$opts = array('timeout' => 15); $req->sendRequest();
?>
Si dependes de un servicio remoto, puede estar funcionando y en marcha, pero no estara en condiciones de manejar sus pedidos debido a problemas de red entre tu servidor y el servidor remoto. Limitar la cantidad de tiempo que espera de PHP para conectar a un servidor remoto es una buena idea, si se utilizan datos procedentes de fuentes remotas que sea parte del proceso de construcción de la página.
Todas las técnicas que describiremos limita la cantidad de tiempo de espera de PHP para conectar a un servidor remoto. Si estas realmente preocupado por las respuestas rápidas, adicionalmente configura el límite de cuánto tiempo PHP espera recibir los datos de los zócalos conectados. Para una conexión stream, utilice la función de
stream_set_timeout(). Para esta función necesitas abrir un stream con
fopen() y no con
file_get_contents(). En los ejemplo limitaremos el tiempo de leer a 20 segundos.
Aunque el establecimiento de conexión y los tiempos de lectura puede mejorar el rendimiento, también puede dar lugar a respuestas ilegibles. La secuencia de comandos puede leer sólo una respuesta parcial ante un tiempo de expiración. Si ha establecido los tiempos, asegúrese de validar toda la respuesta que ha recibido. Por otra parte, en situaciones en las que la generación de la página rápido es fundamental, puedes recuperar los datos externos en un proceso separado y escribir a una memoria caché local. De esta forma, sus páginas pueden usar el caché, sin temor a límites de tiempo o respuestas parciales.
Configurar el tiempo de leer con fopen()
Código PHP:
Ver original<?php
$url = 'http://slow.example.com';
$stream = fopen($url, 'r'); echo $response_body;
?>
Configurar el tiempo de leer con cURL Configurar el tiempo de leer con HTTP_Request
Código PHP:
Ver original<?php
require_once 'HTTP/Request.php';
$req->sendRequest();
?>