Reemplazar cadenas de un RTF con PHP <5

  • Iniciador del tema Miembro eliminado 17453
  • Fecha de inicio
M

Miembro eliminado 17453

Guest
He encontrado código para reemplazar cadenas de una plantilla rtf con cosas como poner #*variable*# en el rtf pero siempre usando el file_get_contents y el put, pero son de php 5 y mi servidor tiene el 4.4 y sólo conozco como opción el fopen fwrite fclose pero me bota error al ejecutar el siguiente código creo por mala sintaxis del fwrite pero no supe cómo más cambiar el file_put_contents por el fwrite

<?php
$plantilla = fopen("plantilla.rtf","w+");
$plantilla = addslashes($plantilla);
$plantilla = str_replace('\r','\\r',$plantilla);
$plantilla = str_replace('\t','\\t',$plantilla);

$nombre = "Ludoviko";
$apellido = "Beaumont";
$fecha = date("d-m-Y", time() - 7 * 24 * 60 * 60);

eval( '$rtf = <<<EOF_RTF
' . $plantilla . '
EOF_RTF;
');

$rtf = str_replace('\\\\','\\',$rtf);

fwrite($plantilla,"$apellido-$nombre-$fecha.rtf",$rtf);
?>


Y en el rtf tengo simplemente esto: Este documento muestra el nombre: $nombre y el apellido: $apellido el la fecha: $fecha

el error es:

Warning: fwrite(): supplied argument is not a valid stream resource in /home/shared3/public_html/dimmsel/alejo/plantilla.php on line 20


Agradezco mucho la colaboración
 
creo q es el mismo post del formulario.. revisa lo q te puse ahi.. es una idea pero espero sirva de algo :) ... por cierto si usas en el archivo algo como %NOMBRE% (en el lugar donde debe ir el nombre de la persona) y haces $plantilla = strreplace('%NOMBRE%',$nombre,$plantilla); --- creo q es asi el strreplace, igual revisa en php.net :)
 
ah otra cosa,, intenta esto... por lo que vi, el problema de tu codigo es la variable $plantilla que no pasa el apuntador correcto, ese deberia funcionar

<?php
$gestor = fopen("plantilla.rtf","w+");
$plantilla = addslashes(fread($gestor,filesize("plantilla.rtf")));
$plantilla = str_replace('\r','\\r',$plantilla);
$plantilla = str_replace('\t','\\t',$plantilla);

$nombre = "Ludoviko";
$apellido = "Beaumont";
$fecha = date("d-m-Y", time() - 7 * 24 * 60 * 60);

eval( '$rtf = <<<EOF_RTF
' . $plantilla . '
EOF_RTF;
');

$rtf = str_replace('\\\\','\\',$rtf);

fwrite($gestor,$rtf);
?>

ahora bien, el fwrite escribe en el gestor, los datos del rtf, por lo que vi necesias un archivo con un nombre especifico, en ese caso te toca hacer primero un fopen('nuevoarchivo.rtf','w+'); luego si fwrite el contenido para ese archivo.. si algo mandame MP e intento ayudarte
 

Los últimos mensajes

Los últimos temas