PHP - Modificar rtf en el servidor - parte 2

   
Vista:
Imágen de perfil de sirez

Modificar rtf en el servidor - parte 2

Publicado por sirez sirez2@hotmail.com (201 intervenciones) el 11/04/2012 23:14:52
Saludos.

una vez solucionado el inconveniente de la ruta utilizando:
$fsalida=$_SERVER['DOCUMENT_ROOT']."/prueba/".$fsalida;
me permite leer el archivo rtf e incluso lo muestra en pantalla...
echo "plantilla: ".$txtplantilla;

la situacion es la siguiente: el archivo certificado.rtf que se supone que genera el programa no existe por ningun lado.

cuando hago clic sobre obtener rtf, marca error 404 y en la direccion del navegado me muestra el siguiente enlace:

http://www.MIDOMINIO.com/var/www/vhosts/MIDOMINIO.com/httpdocs/prueba/certificado.rtf

no entiendo esto /var/www/vhosts/ y httpdocs que está incluido en la direccion. El programa simplemente debería ir a:

http://www.MIDOMINIO.com/prueba/certificado.rtf

busco en el servidor el certificado.rtf en http://www.MIDOMINIO.com/prueba/ pero no aparece.

tenia la duda respecto a mi conexion a la BD pero no es eso, ya que tampoco funciona con valores introducidos manualmente en el scrips.

==============================================
repito el codigo:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
//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=$_SERVER['DOCUMENT_ROOT']."/prueba/".$fsalida;
 
mysql_connect("localhost", "XXXXXXXXXX", "YYYYYYYY");
//Paso no 1.-Leo una plantilla rtf 
$txtplantilla = leef($plantilla);
 
//echo "plantilla: ".$txtplantilla;
// aqui me muestra el archivo... pero no me interesa verlo
 
//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);
mysql_select_db("MI BASE DE DATOS");
$result =mysql_query($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 = $_SERVER['DOCUMENT_ROOT']."/prueba/"."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 RTF</a>";
echo "<p><br><br>$salida</p>";
?>

gracias nuevamente
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Modificar rtf en el servidor - parte 2

Publicado por xve (5522 intervenciones) el 12/04/2012 09:40:31
Hola, haber intento explicarte...

Cuando PHP tiene que acceder a un archivo del disco, tiene que tener la ruta absoluta del disco: $_SERVER['DOCUMENT_ROOT']

Pero cuando tiene que accedes el navegador mediante html o javascript, esa ruta no existe en el lado del cliente (navegador), simplemente utiliza:
"/prueba/".$fsalida
o
/prueba/certificado.rtf

La barra inicial, indica la raíz del dominio del servidor web.

Si no te ha quedado claro, coméntame, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar