Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/01/2010, 02:01
cpozo
 
Fecha de Ingreso: septiembre-2007
Mensajes: 29
Antigüedad: 16 años, 7 meses
Puntos: 0
personalizar documento word

Hola, estoy teniendo un problema con un script y no encuentro donde esta el fallo. A ver si vosotros me podeis ayudar. Por una parte, en un documento guardado como plantilla.rtf tengo este codigo:

Estimados Señores:
#*nombre*#
JOSEFINA SANCHEZ MOLINER, Presidenta …


Tras ejecutar el codigo que mas abajo escribo, me genera un documento xxxcertificado.rtf pero con el mismo contenido. Es decir, #*nombre*# no ha sido sustituido por el valor de la base de datos.

Muchas gracias

Código PHP:
Ver original
  1. <?
  2. //Funcion que lee un archivo de texto y lo mete en una cadena
  3. function leef ($fichero) {
  4.     $texto = file($fichero);
  5.     $tamleef = sizeof($texto);
  6.     for ($n=0;$n<$tamleef;$n++) {$todo= $todo.$texto[$n];}
  7.     return $todo;
  8. }
  9.  
  10.  
  11. //funcion que genera un rtf
  12. function rtf($sql, $plantilla, $fsalida, $matequivalencias){
  13. $pre=time();
  14. //$fsalida="/rtf/".$pre.$fsalida;
  15. $fsalida= "".$pre.$fsalida;
  16. mysql_connect("localhost", "user", "pass");
  17. //Paso no 1.-Leo una plantilla rtf
  18. $txtplantilla = leef($plantilla);
  19. //Paso no.2 Saca cabecera, el cuerpo y el final
  20. $matriz=explode("sectd", $txtplantilla);
  21. $cabecera=$matriz[0]."sectd";
  22. $inicio=strlen($cabecera);
  23. $final=strrpos($txtplantilla,"}");
  24. $largo=$final-$inicio;
  25. $cuerpo=substr($txtplantilla, $inicio, $largo);
  26. //Paso no.3 Escribo el fichero
  27. $punt = fopen($fsalida, "w");
  28. fputs($punt,$cabecera);
  29. $result = mysql_query($sql);
  30. while($row=mysql_fetch_array($result)){
  31.       $despues=$cuerpo;
  32.       foreach ($matequivalencias as $dato) {
  33.       $datosql=$row[$dato[1]];
  34.       $datosql= stripslashes ($datosql);
  35.       $datortf=$dato[0];
  36.       $despues=str_replace($datortf,$datosql,$despues);
  37.     }
  38.     fputs($punt,$despues);
  39.       $saltopag="\par \pre \par";
  40.     fputs($punt,$saltopag);
  41. }
  42. fputs($punt,"}");
  43. fclose ($punt);
  44. return $fsalida;
  45. }
  46.  
  47. $plantilla ="plantilla.rtf";
  48. $sql = "SELECT name from jos_users where id=62";
  49. $equivalencias[0][0]="#*nombre*#";
  50. $equivalencias[0][1]="name";
  51. //$equivalencias[1][0]="#*sitio*#";
  52. //$equivalencias[1][1]="municipio";
  53. $salida = rtf($sql, $plantilla, "certificado.rtf", $equivalencias);
  54. $salida ="<A href='$salida'>Obtener</a>";
  55. echo "<p>$salida</p>";
  56. ?>