Foros del Web » Programando para Internet » PHP »

mostrar algo por pantalla y seguir ejecutando

Estas en el tema de mostrar algo por pantalla y seguir ejecutando en el foro de PHP en Foros del Web. Hola, Tengo un grave problema. Tengo que ejecutar una cola de trabajos que sea muy ligera y devolver un header("HTTP/1.0 200"); Seguidamente necesito seguir ejecutando ...
  #1 (permalink)  
Antiguo 17/03/2011, 04:47
jane_135
Invitado
 
Mensajes: n/a
Puntos:
mostrar algo por pantalla y seguir ejecutando

Hola,

Tengo un grave problema. Tengo que ejecutar una cola de trabajos que sea muy ligera y
devolver un header("HTTP/1.0 200");

Seguidamente necesito seguir ejecutando funciones tras haber mostrado algo por pantalla.


Como puedo realizar esto?
  #2 (permalink)  
Antiguo 17/03/2011, 04:58
 
Fecha de Ingreso: agosto-2008
Mensajes: 12
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: mostrar algo por pantalla y seguir ejecutando

Tienes la respuesta en las FAQs de PHP.

Como soy incapaz de poner un link al artículo, lo pego aquí:

Pon antes de enviar ningún caracter ( donde pondrías un header() o una cookie ) el siguiente código:

Código PHP:
<?php 
ob_start
(); 
?>
Y al final de todo de tu pagina pon:

Código PHP:
<?php 
ob_end_flush
(); 
?>

Última edición por Pepin33; 17/03/2011 a las 05:09
  #3 (permalink)  
Antiguo 17/03/2011, 05:59
jane_135
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: mostrar algo por pantalla y seguir ejecutando

No me sirve, hasta que no se ejecuta todo el código, no saca nada por pantalla.


:(
  #4 (permalink)  
Antiguo 17/03/2011, 08:18
jane_135
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: mostrar algo por pantalla y seguir ejecutando

resulta que sólo me muestra texto que hago con echo pero si pongo header no lo muestra...


¿?
  #5 (permalink)  
Antiguo 17/03/2011, 08:23
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: mostrar algo por pantalla y seguir ejecutando

Revisa la información de flush
en la Documentacion de PHP

saludos!
  #6 (permalink)  
Antiguo 17/03/2011, 09:41
jane_135
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: mostrar algo por pantalla y seguir ejecutando

Lo único que he visto en la documentación es que flush previene que los headers sean mostrados.

Si tengo:

Código PHP:
ob_start();
ob_implicit_flush(true);
set_time_limit(0);


ob_flush();
flush();
echo 
"muestra este texto antes de acabar la ejecución";
ob_end_flush();

sleep(4);


echo 
"este texto lo mostrará al acabar el script";

die; 
Me funciona todo como se espera

Pero si pongo:

Código PHP:
ob_start();
ob_implicit_flush(true);
set_time_limit(0);


ob_flush();
flush();
header("HTTP/1.0 400 NOK");
ob_end_flush();

sleep(4);


echo 
"este texto lo mostrará al acabar el script";

die; 
Muestra el 400 NOK al final del script y no antes, como en el primer ejemplo.
  #7 (permalink)  
Antiguo 17/03/2011, 10:40
 
Fecha de Ingreso: agosto-2008
Mensajes: 12
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: mostrar algo por pantalla y seguir ejecutando

Creo que no lo estás entendiendo bien (o bien soy yo el que no entiende correctamente lo que quieres hacer). Cuando llamas a la función ob_end_flush() es cuando se procesa realmente el header. Así que si pones algo detrás del ob_end_flush(), no se va a mostrar nunca, como es lógico.
  #8 (permalink)  
Antiguo 17/03/2011, 11:48
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: mostrar algo por pantalla y seguir ejecutando

si entendí bien lo que pretendes hacer no es posible, ya que el navegador al ser interprete lee linea por linea y el header lo que modifica es la cabecera del html y por lo tanto si tu envias algo al navegador se creara el <head> y posteriormente el <body> para mostrar los resultados y aun solo envies parte del documento, con esto ya creado es imposible que php pueda modificar el <head> porque ya no le pertenece ahora es parte del navegador, tal vez puedas lograr algo con la ayuda de ajax y manipulando el DOM.

saludos y suerte.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #9 (permalink)  
Antiguo 17/03/2011, 12:00
jane_135
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: mostrar algo por pantalla y seguir ejecutando

Esto realmente lo quiero hacer porque tengo que devolver un "header 200" y luego seguir ejecutando procesos una vez que he recibido ese mensaje (Realmente se lo mando a otra persona que ejecuta la url" así puedo hacer trabajos en cadena.

Podría utilizar passthru o exec para ese proceso que no necesito controlar ni esperar respuesta? Sólo tengo que lanzarlo a modo de disparador.

Última edición por jane_135; 17/03/2011 a las 12:07

Etiquetas: pantalla, seguir
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:16.