Foros del Web » Programando para Internet » PHP »

Editar un rtf con php, me tira error

Estas en el tema de Editar un rtf con php, me tira error en el foro de PHP en Foros del Web. este es mi codigo Código PHP: if (isset( $_POST [ 'rtf' ])){      // Lee la plantilla      $plantilla  =  file_get_contents ( 'prueba.rtf' );            // Agregamos los escapes necesarios      $patron  ...
  #1 (permalink)  
Antiguo 27/07/2009, 13:13
 
Fecha de Ingreso: marzo-2009
Mensajes: 27
Antigüedad: 15 años, 1 mes
Puntos: 0
Exclamación Editar un rtf con php, me tira error

este es mi codigo

Código PHP:
if (isset($_POST['rtf'])){
    
// Lee la plantilla
    
$plantilla file_get_contents('prueba.rtf');
     
    
// Agregamos los escapes necesarios
    
$patron '/\\\\\'(.)(.)/i';
    
$reemplazo '\'$1$2';
    
$plantilla preg_replace($patron,$reemplazo,$plantilla);
    
$plantilla addslashes($plantilla);
    
$plantilla str_replace('\r','\\r',$plantilla);
    
$plantilla str_replace('\t','\\t',$plantilla);
     
    
// Datos de la plantilla
    
$nombre $_POST["nombre"];
    
$apellido $_POST["apellido"];
    
$fecha date("d-m-Y"time());
     
    
// Procesa la plantilla
    
eval( '$rtf = <<<EOF_RTF
    ' 
$plantilla '
    EOF_RTF;
    ' 
);
     
    
// Guarda el RTF generado, el nombre del RTF en este caso sera el apellido-nombre.fechaactual.rtf
    
file_put_contents("$apellido-$nombre-$fecha.rtf",$rtf);
     
    echo 
"<a href=\"$apellido-$nombre-$fecha.rtf\">descargar</a>";

y este el formulario
Código HTML:
<form action="index.php" method="post">
    <input name="nombre" type="text" />Nombre<br />
    <input name="apellido" type="text" />Apellidos<br />
    <input name="rtf" type="submit" value="Modificar archivo" />
</form> 
Me tira este error :S, porq sera? mil gracias por la ayuda!!!

Código:
Parse error: syntax error, unexpected $end in /home/XXX/index.php(30) : eval()'d code on line 18
  #2 (permalink)  
Antiguo 27/07/2009, 13:29
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Editar un rtf con php, me tira error

Eso significa que tu plantilla tiene en alguna parte una llave { y no es cerrada lo cual causa un error.

Recuerda que eval() sirve para evaluar PHP, no para evaluar otros códigos, en este caso al tu pasarle el contenido binario de 'prueba.rtf' te encuentras con ese problema.

Saludos.
  #3 (permalink)  
Antiguo 27/07/2009, 13:37
 
Fecha de Ingreso: marzo-2009
Mensajes: 27
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Editar un rtf con php, me tira error

Cita:
Iniciado por GatorV Ver Mensaje
Eso significa que tu plantilla tiene en alguna parte una llave { y no es cerrada lo cual causa un error.

Recuerda que eval() sirve para evaluar PHP, no para evaluar otros códigos, en este caso al tu pasarle el contenido binario de 'prueba.rtf' te encuentras con ese problema.

Saludos.
imprimi el rtf por pantalla y tiene la misma cantidad de llaves abiertas q cerradas

por cualquier duda le agregue a $plantilla una llave mas por las dudas sobre el final , pero nada, me sigue tirando el mismo error :S
  #4 (permalink)  
Antiguo 27/07/2009, 14:07
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Editar un rtf con php, me tira error

Como te comento, no es lo mejor pasar todo el código RTF por eval(), es mejor que hagas los reemplazos normales usando str_replace con eso te vas a evitar esos errores.

Saludos.
  #5 (permalink)  
Antiguo 27/07/2009, 14:26
 
Fecha de Ingreso: marzo-2009
Mensajes: 27
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Editar un rtf con php, me tira error

Cita:
Iniciado por GatorV Ver Mensaje
Como te comento, no es lo mejor pasar todo el código RTF por eval(), es mejor que hagas los reemplazos normales usando str_replace con eso te vas a evitar esos errores.

Saludos.
bueno hice eso de reemplazar manualmente, sin el eval y crea el archivo:
Código PHP:
$plantilla str_replace('$nombre',$nombre,$plantilla);
    
$plantilla str_replace('$apellido',$apellido,$plantilla);
    
$plantilla str_replace('$fecha',$fecha,$plantilla);
             
    
// Guarda el RTF generado, el nombre del RTF en este caso sera el apellido-nombre.fechaactual.rtf
    
file_put_contents("$apellido-$nombre-$fecha.rtf",$plantilla); 
pero mi problema ahora es q cuando pongo para descargar o ver el archivo generado es todo el codigo ese ilegible, no el q yo puse de base.
gracias por la ayuda desde ya, y perdon si no soy muy claro :S
  #6 (permalink)  
Antiguo 27/07/2009, 14:38
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Editar un rtf con php, me tira error

Pues quita los primeros reemplazos que tienes a ver si con eso se arregla, si buscas en el foro hay muchos otros aportes de como hacer esto con el RTF.

Saludos.
  #7 (permalink)  
Antiguo 23/08/2009, 18:20
 
Fecha de Ingreso: agosto-2009
Mensajes: 1
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Editar un rtf con php, me tira error

Hola debe borrar las lineas que se colocaban para preparar la variable para eval, simplemente comenta las lineas yyyyyyyy uuuuaaaaalaaaaa!!!! funciona

// Agregamos los escapes necesarios
//$plantilla = addslashes($plantilla);
//$plantilla = str_replace('\r','\\r',$plantilla);
//$plantilla = str_replace('\t','\\t',$plantilla);
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 07:18.