Foros del Web » Programando para Internet » PHP »

Crear un archivo pasándole como contenido codigo html y php

Estas en el tema de Crear un archivo pasándole como contenido codigo html y php en el foro de PHP en Foros del Web. Hola a tod@s! Les cuento que estoy utilizando esto: Código PHP:        if ( $gestor  =  fopen ( $nombre_archivo ,  'w+' ))        {           fwrite ( ...
  #1 (permalink)  
Antiguo 17/08/2011, 09:46
 
Fecha de Ingreso: octubre-2009
Mensajes: 107
Antigüedad: 14 años, 5 meses
Puntos: 2
Crear un archivo pasándole como contenido codigo html y php

Hola a tod@s! Les cuento que estoy utilizando esto:
Código PHP:
      if ($gestor fopen($nombre_archivo'w+')) 
      {
         
fwrite($gestor$contenido);    
      } 
Mi problema está en la parte donde quiero crear el $contenido, ya que quiero que el contenido sea una plantilla que tengo hecha, la cual tiene código html y php. La parte en html me la muestra bien, el problema que la de php, no. Pero tampoco me aparece ningún mensaje, simplemente no me imprime nada.
Les muestro lo que sería mi código en manera más reducida:

Código PHP:
//Acá está todo el comienzo de la tabla, que todo esto se ve bien porque es html puro, digamos
</td>
                                                </tr>
                                            </table>
<?php 
include(conexion.php);
mysql_query ("SET NAMES \'utf8\'");
$i=0;
// el $arrayIds lo paso al principio y me muestra bien los valores
foreach ($arrayIds as $id){ 
        
$i++;
    
$dametodo="select * from productos where id=\'$id\'";
    
$query=mysql_query($dametodo);
    while(
$row=mysql_fetch_array($query)){
            
$foto=$row[0];
            
$descrip=$row[4];
?>
        <table width="650" border="0" cellpadding="5" height="320">
                        <tr>&nbsp;</tr>
            <tr>
                            <td width="180" rowspan="4">
                                <div align="center">
                                    <a href="productos.php?id=\'.<?php echo $id?>.\'" target="_blank">
                                        <img src="images <?php echo $foto?>" width="172" height="252" border="0"/>
                                    </a>        
                                </div>
                            </td>
                            <td style="font:Verdana, Arial, Helvetica, sans-serif ; text-align:left; font-weight:bold; color:#5C9B1E; font-size:12px">\'.$descrip.\'
                            </td>
            </tr>
//Obviamente sigue, cierra el foreach, y luego viene codigo html que lo imprime todo, el problema es que no imprime la parte esta que se genera desde código php.
Como se ve, a todo el código que va a ir dentro de $contenido, le antepongo a las comillas simple la "\", el tema es que en html me lo interpreta bien, yo pienso que ahí está el problema con lo de php, pero no se como hacerlo.

Es bastante urgente, si alguien me puede dar una mano, se lo agradeceré muchisimo!!
Saludos!!
  #2 (permalink)  
Antiguo 17/08/2011, 15:04
 
Fecha de Ingreso: octubre-2009
Mensajes: 107
Antigüedad: 14 años, 5 meses
Puntos: 2
Respuesta: Crear un archivo pasándole como contenido codigo html y php

Cita:
Iniciado por potoka Ver Mensaje
Hola a tod@s! Les cuento que estoy utilizando esto:
Código PHP:
      if ($gestor fopen($nombre_archivo'w+')) 
      {
         
fwrite($gestor$contenido);    
      } 
Mi problema está en la parte donde quiero crear el $contenido, ya que quiero que el contenido sea una plantilla que tengo hecha, la cual tiene código html y php. La parte en html me la muestra bien, el problema que la de php, no. Pero tampoco me aparece ningún mensaje, simplemente no me imprime nada.
Les muestro lo que sería mi código en manera más reducida:

Código PHP:
//Acá está todo el comienzo de la tabla, que todo esto se ve bien porque es html puro, digamos
</td>
                                                </tr>
                                            </table>
<?php 
include(conexion.php);
mysql_query ("SET NAMES \'utf8\'");
$i=0;
// el $arrayIds lo paso al principio y me muestra bien los valores
foreach ($arrayIds as $id){ 
        
$i++;
    
$dametodo="select * from productos where id=\'$id\'";
    
$query=mysql_query($dametodo);
    while(
$row=mysql_fetch_array($query)){
            
$foto=$row[0];
            
$descrip=$row[4];
?>
        <table width="650" border="0" cellpadding="5" height="320">
                        <tr>&nbsp;</tr>
            <tr>
                            <td width="180" rowspan="4">
                                <div align="center">
                                    <a href="productos.php?id=\'.<?php echo $id?>.\'" target="_blank">
                                        <img src="images <?php echo $foto?>" width="172" height="252" border="0"/>
                                    </a>        
                                </div>
                            </td>
                            <td style="font:Verdana, Arial, Helvetica, sans-serif ; text-align:left; font-weight:bold; color:#5C9B1E; font-size:12px">\'.$descrip.\'
                            </td>
            </tr>
//Obviamente sigue, cierra el foreach, y luego viene codigo html que lo imprime todo, el problema es que no imprime la parte esta que se genera desde código php.
Como se ve, a todo el código que va a ir dentro de $contenido, le antepongo a las comillas simple la "\", el tema es que en html me lo interpreta bien, yo pienso que ahí está el problema con lo de php, pero no se como hacerlo.

Es bastante urgente, si alguien me puede dar una mano, se lo agradeceré muchisimo!!
Saludos!!
Ya lo he solucionado!!! a modo de ejemplo, en vez de tener esto:
Código:
<a href="productos.php?id=\'.<?php echo $id; ?>.\'" target="_blank">
lo que hice fue poner esto:
Código:
<a href="productos.php?id=<?php echo $id; ?>" target="_blank">
Es decir, sin las "\'", cambiando eso en todos lados, funcionó perfectamente!

Saludos a todos!

Etiquetas: contenido, html, mysql, sql, tabla
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 10:59.