Foros del Web » Programando para Internet » PHP »

Timeout de server al generar PDF's

Estas en el tema de Timeout de server al generar PDF's en el foro de PHP en Foros del Web. Hola a todo el mundo.... Les comento lo siguiente, estoy tratando de generar un informe en formato PDF a través de la clase mencionada y ...
  #1 (permalink)  
Antiguo 26/09/2003, 23:22
Avatar de Alemarch  
Fecha de Ingreso: marzo-2003
Ubicación: mi casa
Mensajes: 20
Antigüedad: 21 años, 8 meses
Puntos: 0
Timeout de server al generar PDF's

Hola a todo el mundo....

Les comento lo siguiente, estoy tratando de generar un informe en formato PDF a través de la clase mencionada y comentada en este mismo foro (http://www.ros.co.nz/pdf) he hecho el siguiente ejemplo que ha funcionado bastante bien:

Código PHP:
<?php
include ('class.ezpdf.php');
$pdf =& new Cezpdf();
$pdf->selectFont('./fonts/Times-Roman.afm');
$pdf->ezText('',30);
$pdf->addText(250,800,13,"Titulo del documento",0,0);
$data = array();
for(
$i=1;$i<6;$i++)
{
    
$data[] = array('num'=>$i,'tex1'=>'Texto columna 2 - ' $i'tex2'=>'Texto columna 3 - ' $i);
}
$cols = array('num'=>"Columna uno",'tex1'=>'Columna dos','tex2'=>'Columna tres (3)');
$pdf->ezTable($data,$cols,'',array('xPos'=>90,'xOrientation'=>'right','width'=>300,
  
'cols'=>array('num'=>array('justification'=>'center'),'tex1'=>array('width'=>100))));
$pdf->ezStream();
?>
Sin embargo, al tratar de generar en forma dinámica la tabla obteniendo datos de mi base y usando el mismo esquema
ocupado en el ejemplo anterior, se me queda pegado y se
cancela por el timeout de apache (30 seg). Probé cambiando el parámetro set_time_limit(120) pero es igual, y si lo dejo en 0, el
apache termina por consumirme toda la memoria.
Estoy usando el siguiente código:

Código PHP:
$data = array();
$result sql_query("select campo1, campo2, campo3 from tabla1"$dbi);
while(list(
$c1$c2$c3) = sql_fetch_row($result$dbi))
{    
  
$data[] = array('campo1' => $c1'campo2' => $c2'campo3' => $c3);
}
$cols = array('campo1'=>"Campo No1",'campo2'=>'Campo No2','campo3'=>'Campo No3');
$pdf->ezTable($data,$cols,'',array('xPos'=>90,'xOrientation'=>'right','width'=>300,
      
'cols'=>array('num'=>array('justification'=>'center'),'name'=>array('width'=>100))));
$pdf->ezStream(); 
También he tratado de usar el modo de depuración (opcion ?d=1)
para ver hasta dónde se genera el PDF pero no muestra ninguna
información.

Por Favor si a alguien le ha tocado pasar por algo similar y salido
del paso de alguna forma, me vendría bien al menos un
comentario o quizá una pista. Yo ya no tengo ninguna.

Gracias de antemano por su atención en este tema y por su
valiosa ayuda.

Alemarch.
  #2 (permalink)  
Antiguo 27/09/2003, 00:13
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 21 años, 6 meses
Puntos: 2
umm, veo que es de pago$$$, yo en mi caso envie un email al operador de mi hosting, y subieron el tiempo a 90 segundos, no es mucho pero me ayudo.
__________________
3w.valenciadjs.com
3w.laislatv.com
  #3 (permalink)  
Antiguo 28/09/2003, 21:28
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Si puedes usar set_time_limit() en tu servicio de hosting o servidor própio .. no deberías tener problemas con respecto a la ejecución del script.

El problema de la mémoria consumida ... lo puedes solucionar sólo si tienes control y acceso al PHP.ini dandlo más mémoria para la ejecución de tus scripts. (y por supuesto que tengas esa memoria en ese PC-servidor...)

Me refiero a:
memory_limit = 8M ; Maximum amount of memory a script may consume (8MB)

Por defecto está como ves a 8 Megabytes .. cambialo y prueba.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 22:26.