Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] duda con la ejecucion de un script PHP

Estas en el tema de duda con la ejecucion de un script PHP en el foro de PHP en Foros del Web. Hola, Me gustaría poner al final de un script ciertas funciones para estadísticas, limpiar algunas entradas en base datos etc. pero lo que no se ...
  #1 (permalink)  
Antiguo 09/06/2015, 17:36
 
Fecha de Ingreso: mayo-2013
Mensajes: 191
Antigüedad: 10 años, 11 meses
Puntos: 10
duda con la ejecucion de un script PHP

Hola,

Me gustaría poner al final de un script ciertas funciones para estadísticas, limpiar algunas entradas en base datos etc. pero lo que no se es si esto va a tardar en enviar la pagina al cliente

ejemplo:
Código PHP:
Ver original
  1. <?php
  2.     echo "Pagina para cliente";
  3.    
  4.     function mi_funcion(){
  5.         //codigo que tarda bastante tiempo 20 25 segundos
  6.     }
  7.     mi_funcion();
  8. ?>

En otras palabras:
¿La pagina se envía después del echo, o después de terminar el script?
Gracias
  #2 (permalink)  
Antiguo 09/06/2015, 17:38
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: duda con la ejecucion de un script PHP

Después de terminar el script.

Sin embargo podría comenzarse a enviar desde el echo.

Te sugiero leer en el manual la sección de buffers y flushing, te servirá.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 09/06/2015, 18:07
 
Fecha de Ingreso: mayo-2013
Mensajes: 191
Antigüedad: 10 años, 11 meses
Puntos: 10
Respuesta: duda con la ejecucion de un script PHP

Gracias por tu sugerencia pero justo despues de pasar un rato buscar en google algo parecido y despues de mirar en el manual de PHP he formulado esta pregunta aqui.
porque auque dice en el manual:
Cita:
ob_end_flush — Volcar (enviar) el búfer de salida ....
He intentado esto pero no funciona:

Código PHP:
Ver original
  1.  
  2.          echo "Pagina para cliente";
  3.     ob_end_flush();
  4.        //yo suponia que el cliente recibe la pagina aqui pero no. La recibe al final del script
  5.  
  6.     function mi_funcion(){
  7.        
  8.         sleep(10);
  9.     }
  10.     mi_funcion();

De los montones de ejemplos que he visto en el manual no he encontrado ninguno que intente ejecutar algo (por un tiempo) despues de enviar la pagina al cliente

Alguna sugerencia ?
gracias
  #4 (permalink)  
Antiguo 09/06/2015, 22:07
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: duda con la ejecucion de un script PHP

Te faltó revisar flush() en el manual: http://php.net/flush
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 10/06/2015, 03:50
 
Fecha de Ingreso: mayo-2013
Mensajes: 191
Antigüedad: 10 años, 11 meses
Puntos: 10
Respuesta: duda con la ejecucion de un script PHP

Hola,
Precisamente he llegado a ob_end_flush() despues de probar flush() y ob_flush() ( siguiendo los links relacionados del manual.

Entonces digamos que aunque he revisado, me falto entenderlo bien asi que al mirar otra vez ( como sugieras ) me di cuenta que podria estar en uno de los casos:

Cita:
...Algunos servidores, especialmente en Win32, seguirán almacenando en búfer la salida producida por un script hasta que éste termine antes de transmitir los resultados al navegador.

Puede que algunos módulos de servidor para Apache, como mod_gzip, usen búferes propios que causarán que flush() no resulte en un envío inmediato de los datos al cliente....
Pero aun asi estoy muy confuso ... he desactivado el mod_deflate que tenia en Apache y nada.
Como estoy probando en windows con (WAMP) estare en el primer caso del manual (...Algunos servidores, .... etc)

Entonces reformulo la pregunta:

¿flush() (y los demas relacionados ob_flush() , ob_end_flush() ) es el unico modo de hacer esto ?
  #6 (permalink)  
Antiguo 10/06/2015, 07:11
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: duda con la ejecucion de un script PHP

Sí, la única manera de provocar un volcado prematuro del buffer es mediante las funciones flush, y aún así, como acabas de leer, aún dependes del mismo servidor web para que funcione correctamente.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 10/06/2015, 07:31
 
Fecha de Ingreso: mayo-2013
Mensajes: 191
Antigüedad: 10 años, 11 meses
Puntos: 10
Respuesta: duda con la ejecucion de un script PHP

Entendido. Gracias.

Etiquetas: ejecucion
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 02:28.