Foros del Web » Programando para Internet » PHP »

Fwrite, fopen y fread ayuda plis!!!

Estas en el tema de Fwrite, fopen y fread ayuda plis!!! en el foro de PHP en Foros del Web. Buenas, estoy montando un panel de control y he llegado a un punto que no se seguir. Quisiera generar páginas html con php. Tengo la ...
  #1 (permalink)  
Antiguo 10/03/2009, 19:14
 
Fecha de Ingreso: octubre-2008
Ubicación: Alicante
Mensajes: 337
Antigüedad: 15 años, 6 meses
Puntos: 9
Fwrite, fopen y fread ayuda plis!!!

Buenas, estoy montando un panel de control y he llegado a un punto que no se seguir.

Quisiera generar páginas html con php. Tengo la plantilla, con las variables, y con las instrucciones fread y fwrite lo unico que consigo es copiar el codigo tal y como esta (con variables, sin la recogida de datos, osea con todo el codigo php).
Me gustaria saber como podria usar el copy() una vez este la plantilla con las variables ya resueltas y sin el codigo php. No se si deberia usar el exec() para ejecutar el php o yo no se... de verdad.

Mil gracias por las respuestas o alguna orientacion.

Saludos!

Última edición por manolo_manolo; 13/03/2009 a las 17:04
  #2 (permalink)  
Antiguo 10/03/2009, 19:25
 
Fecha de Ingreso: marzo-2009
Mensajes: 39
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Fwrite, fopen y fread ayuda plis!!!

BUeno exactamente lo que entendi es que tienes problemas para generar archivos html con php, aca te pongo un ejemplo para que lo puedas aplicar:

Código PHP:
$fp=fopen("prueba.html",w);
fwrite($fp"<html><body>mi primera pagina html</body></html>");
fclose($fp); 
Pruebalo y nos comentas la funcionalidad, ojo que en fwrite colocas todo el codigo que deseas que apareza, puedes colocar para que imprima variables php.

Última edición por jam1138; 10/03/2009 a las 20:19 Razón: Eliminar firma
  #3 (permalink)  
Antiguo 10/03/2009, 19:34
 
Fecha de Ingreso: octubre-2008
Ubicación: Alicante
Mensajes: 337
Antigüedad: 15 años, 6 meses
Puntos: 9
Respuesta: Fwrite, fopen y fread ayuda plis!!!

Lo de escribir el texto que yo quiera en otro archivo si que se. Lo que me refiero que me copie el código (en mi caso de "plantilla.html" con las variables) a "nuevo.html". En "nuevo.html" me deberia de quedar codigo html y los resultados de las variables, pero sin nada de código php. Este es mi archivo:

Plantilla.html contiene html, javascript y php

Nuevo.html quiero que se escriba en él solo el html, el javascript y el php resuelto.

Código:
$nombre_archivo = "plantilla.html";
$gestor = fopen($nombre_archivo, "r");
$plantilla  = fread($gestor, filesize($nombre_archivo));
fclose($gestor);

$nombre_archivo = "nuevo.html";
$gestor = fopen($nombre_archivo, "w");
fwrite($gestor, $plantilla);
fclose($gestor);
  #4 (permalink)  
Antiguo 10/03/2009, 19:52
Avatar de benji_  
Fecha de Ingreso: marzo-2009
Mensajes: 19
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Fwrite, fopen y fread ayuda plis!!!

Alqo que puedes hacer es leer linea por linea el archivo "plantilla.html" y cuando encuentras las partes de codigo PHP, en vez de guardarlo como un simple string, utilizes la funcion eval() para intentar ejecutar el codigo.

Es una idea por donde comenzar, averigua mas sobre la lectura de archivos linea por linea y de la funcion eval();

Saludos
  #5 (permalink)  
Antiguo 11/03/2009, 16:07
 
Fecha de Ingreso: octubre-2008
Ubicación: Alicante
Mensajes: 337
Antigüedad: 15 años, 6 meses
Puntos: 9
Respuesta: Fwrite, fopen y fread ayuda plis!!!

Hola, he estado probando el eval() pero el archivo me lo sigue copiando tal y como está escrito en php. A ver si me explico ahora mejor:

Código:
<?php
$cadena = 'taza';
$nombre = 'café';
$cad = '<strong>Esta es una $cadena con mi $nombre en ella.</strong>';
eval("\$cad = \"$cad\";");
echo $cad. "\n";
?>

ESE CODIGO QUE ES EL QUE HAY EN "PLANTILLA.HTML" ME LO COPIA IDENTICO EN "NUEVO.HTML". Y YO QUISIESE QUE ME COPIARA EL PHP YA RESUELTO, OSEA:

<strong>Esta es una taza con mi café en ella.</strong>
Ayuda por favorrr...

Última edición por manolo_manolo; 11/03/2009 a las 16:11 Razón: Corregido
  #6 (permalink)  
Antiguo 11/03/2009, 16:33
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: Fwrite, fopen y fread ayuda plis!!!

Pues si ya lo tienes:
Código php:
Ver original
  1. <?php
  2. $cadena = 'taza';
  3. $nombre = 'café';
  4. $cad = '<strong>Esta es una $cadena con mi $nombre en ella.</strong>';
  5. eval("\$cad = \"$cad\";");
  6.  
  7. $fh = fopen( 'nuevo.html', 'w' );
  8. fwrite( $fh, $cad );
  9. fclose( $fh );
  10. ?>
  #7 (permalink)  
Antiguo 11/03/2009, 18:16
 
Fecha de Ingreso: octubre-2008
Ubicación: Alicante
Mensajes: 337
Antigüedad: 15 años, 6 meses
Puntos: 9
Respuesta: Fwrite, fopen y fread ayuda plis!!!

Teneis razón, pero ahora me ha surgido otro problema. No puedo escribir comillas dentro... mirar lo tengo asi:

Código:
$cad = '<center><img width="345" height="214" src=$imagen></center>';
Si le quito las comillas sí que me funciona, pero así tal y como os lo he puesto aquí, me da error:

Código:
Parse error: syntax error, unexpected T_LNUMBER in /var/www/vhost/ociogratis.es/home/html/prueba/pruebas_php.php(26) : eval()'d code on line 1
Que puedo hacer?¿?¿?
  #8 (permalink)  
Antiguo 11/03/2009, 20:20
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: Fwrite, fopen y fread ayuda plis!!!

Lee: http://www.forosdelweb.com/f18/como-...s-bien-588701/

Saludos.
  #9 (permalink)  
Antiguo 12/03/2009, 11:33
 
Fecha de Ingreso: octubre-2008
Ubicación: Alicante
Mensajes: 337
Antigüedad: 15 años, 6 meses
Puntos: 9
Respuesta: Fwrite, fopen y fread ayuda plis!!!

Ostras tenias razon...

A veces me atasco... jejejej.

Una última cosa, sería malo meter una página entera de html en la variable $cad???

Mil gracias!!!
  #10 (permalink)  
Antiguo 12/03/2009, 11:53
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: Fwrite, fopen y fread ayuda plis!!!

Depende del tamaño, verifica la directiva memory_limit.

Saludos
  #11 (permalink)  
Antiguo 12/03/2009, 17:23
 
Fecha de Ingreso: octubre-2008
Ubicación: Alicante
Mensajes: 337
Antigüedad: 15 años, 6 meses
Puntos: 9
Respuesta: Fwrite, fopen y fread ayuda plis!!!

Buenas, me ha vuelto a surgir un impedimento mientras trabajo con esto. En el momento que uso un While o un For deja de funcionarme... y no encuentro el error, o si esque no se puede meter en la variable. Este es mi código:

Código PHP:
$registros=mysql_query($sentencia$link);
$registro=mysql_fetch_row($registros);

$cad "<h2> Listado de registros:</h2><center><table border='4' cellspacing='7'><tr><td align=center>IMAGEN<td align=center>NOMBRE<td align=center>IDIOMA<td align=center>GENERO<td align=center>TAMANYO<td align='center'>DESCRIPCION</tr>
<script type='text/javascript'>
for(i=0;i<=10;i++)
{
<tr><td><img width='140' src=$imagen><td>$registra<td>$nombre<td>$nombre<td width='60'>$nombre2<td><font size=2px>$nombre3</font></td></tr>
};
</script>
</table></center>
"
;

eval(
"\$cad = \"$cad\";");
$fh fopen'nuevo.html''w' );
fwrite$fh$cad );
//fwrite( $codigo );
fclose$fh ); 
  #12 (permalink)  
Antiguo 12/03/2009, 19:14
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: Fwrite, fopen y fread ayuda plis!!!

No puedes evaluar un for dentro de un string, este tiene que se parte del código, y tienes que ir agregando a tu string:
Código php:
Ver original
  1. $cad = '';
  2. for($i = 0; $i < 4; $i++ ) {
  3.         $cad .= "datos $i";
  4. }
  5. echo $cad;

Saludos.
  #13 (permalink)  
Antiguo 13/03/2009, 16:58
 
Fecha de Ingreso: octubre-2008
Ubicación: Alicante
Mensajes: 337
Antigüedad: 15 años, 6 meses
Puntos: 9
Buenas estoy intentandolo pero no lo consigo llevo ya varias horas con esto y no saco nada... Se que es mucho pedir, pero podrias ampliarme un poco mas el codigo? O el como seria en mi caso? De verdad, esque no consigo aclararme.
Lo siento, y mil gracias otra vez.

Heeeelp...

Última edición por GatorV; 15/03/2009 a las 22:29
  #14 (permalink)  
Antiguo 15/03/2009, 22: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: Fwrite, fopen y fread ayuda plis!!!

Lee claramente lo que te indico, tienes que agregar los datos a tu cadena, usando el operador ".", si ves el ejemplo que te deje es facil que adaptes tu codigo.

Saludos.
  #15 (permalink)  
Antiguo 16/03/2009, 06:41
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 1 mes
Puntos: 20
De acuerdo Respuesta: Fwrite, fopen y fread ayuda plis!!!

Proba asi:

Código PHP:
<?php

      $cadena 
'taza';

      
$nombre 'café';

      
$cad '<strong>Esta es una '.$cadena.' con mi '.$nombre.' en ella.</strong>';

      
$fh fopen'nuevo.html''w' );

      
fwrite$fh$cad );

      
fclose$fh );

?>
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....

PD: Siempre doy karma al que me da una buena respuesta... ;0)
  #16 (permalink)  
Antiguo 16/03/2009, 10:21
 
Fecha de Ingreso: octubre-2008
Ubicación: Alicante
Mensajes: 337
Antigüedad: 15 años, 6 meses
Puntos: 9
Eso sí. Lo que no consigo es meter un for dentro. Llevo intentandolo todo el fin de semana como me dijo GatorV pero no me aclaro...

Siento ser tan corto, pero llevo dos semanas y no lo consigo... Alguien me puede echar una mano y detallarme un poco mas?

Consigo generar la página con los resultados de un registro, pero de dos ya no lo consigo.

Millones de gracias!

Última edición por GatorV; 07/04/2009 a las 22:18
  #17 (permalink)  
Antiguo 28/03/2009, 12:02
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Fwrite, fopen y fread ayuda plis!!!

Y si creas variables separando el contenido?

Código php:
Ver original
  1. $titulos = '<table><tr><td>Titulos de la tabla</td></tr>';
  2. $pie = '</table>';
  3. $contenido = '';
  4. for($i = 0; $i <= 20; $i++) {
  5.     $contenido .= "<tr><td>Texto $variable ... bla bla bla</td></tr>";
  6. }
  7. $cadena = $titulos . $contenido . $pie;
__________________
- León, Guanajuato
- GV-Foto
  #18 (permalink)  
Antiguo 07/04/2009, 19:35
 
Fecha de Ingreso: octubre-2008
Ubicación: Alicante
Mensajes: 337
Antigüedad: 15 años, 6 meses
Puntos: 9
Respuesta: Fwrite, fopen y fread ayuda plis!!!

Gracias Triby, me funciona mostrandolo en php, y una duda que tengo es:

¿Puedo meter todo el código php que yo quiera(cada instrucción eso sí, dentro de sus <?php ... ?>) dentro del archivo plantilla.html? ¿No tendria ningún problema?
  #19 (permalink)  
Antiguo 08/04/2009, 12:12
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Fwrite, fopen y fread ayuda plis!!!

Creo que poder, si puedes, pero no se que tan conveniente puede ser de acuerdo al diseño de tus scripts. Para que tu mismo decidas considera:

Cual es el beneficio de incluir este codigo en la plantilla?
Si es por tener menos codigo en tu script, vas a aumentar el de la plantilla y... como dicen en mi tierra: es la misma gata, pero revolcada.

La estructura de tu script segira siendo legible?
Imagina que posteriormente necesitas modificar algo en ese codigo, puede ser mas facil localizarlo y editarlo en la plantilla que en el script, aunque todo depende de como estas programando.
__________________
- León, Guanajuato
- GV-Foto
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 21:39.