Estoy probando un script de este site, donde se genera un .RTF y se le asignan datos dinámicamente de una B.D. Mysql:
http://www.desarrolloweb.com/articul...6.php?manual=6
El código es éste:
Código PHP:
<?
//Funcion que lee un archivo de texto y lo mete en una cadena
function leef ($fichero) {
$texto = file($fichero);
$tamleef - sizeof($texto);
for ($n=0;$n<$tamleef;$n++) {$todo= $todo.$texto[$n];}
return $todo;
}
//funcion que genera un rtf
function rtf($sql, $plantilla, $fsalida, $matequivalencias){
$pre=time();
$fsalida="/rtf/".$pre.$fsalida;
mysql_connect("localhost", "root", "");
//Paso no 1.-Leo una plantilla rtf
$txtplantilla = leef($plantilla);
//Paso no.2 Saca cabecera, el cuerpo y el final
$matriz=explode("sectd", $txtplantilla);
$cabecera=$matriz[0]."sectd";
$inicio=strlen($cabecera);
$final=strrpos($txtplantilla,"}");
$largo=$final-$inicio;
$cuerpo=substr($txtplantilla, $inicio, $largo);
//Paso no.3 Escribo el fichero
$punt = fopen($fsalida, "w");
fputs($punt,$cabecera);
$result = mysql("usuarios", $sql);
While($row=mysql_fetch_object($result)){
$despues=$cuerpo;
foreach ($matequivalencias as $dato) {
$datosql=$row->$dato[1];
$datosql= stripslashes ($datosql);
$datortf=$dato[0];
$despues=str_replace($datortf,$datosql,$despues);
}
fputs($punt,$despues);
$saltopag="\par \page \par";
fputs($punt,$saltopag);
}
fputs($punt,"}");
fclose ($punt);
return $fsalida;
}
$plantilla = "plantilla.rtf";
$sql = "SELECT nombre, municipio from usuarios";
$equivalencias[0][0]="#*nombre*#";
$equivalencias[0][1]="nombre";
$equivalencias[1][0]="#*sitio*#";
$equivalencias[1][1]="municipio";
$salida = rtf($sql, $plantilla, "certificado.rtf", $equivalencias);
$salida ="<A href='$salida'>Obtener</a>";
echo "<p>$salida</p>";
?>
La cuestión es que me sale los siguientes Warnings:
Código PHP:
Warning: fputs(): supplied argument is not a valid stream resource in documento.php on line 37
Warning: fputs(): supplied argument is not a valid stream resource in documento.php on line 39
Código PHP:
Linea 37 fputs($punt,$despues);
Linea 38 $saltopag="\par \page \par";
Linea39 puts($punt,$saltopag);
Igualemnte el archivo .RTF no se genera y en la página documento.php se linkea el supuesto rtf como http://localhost/rtf/1118844467certificado.rtf
Por qué la numeración 1118844467certificado.rtf ???
Saludos y Gracias, el resolver esto me parece interesante.