Autor Tema: PHP.- "Escribir" una función dentro de un fputs incluído en otra función  (Leído 2459 veces)

HumbertoV

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 4
    • Ver Perfil
Hola: esto se me ha ocurrido a partir de Entrega nº36 del Tutorial básico del programador web: PHP desde cero de aprenderaprogramar.com

No se si es posible. Soy principiante y no se si lo que quiero se puede hacer.
Quiero crear un script que cree páginas HTML y a su vez incluya dentro de cada una el menú que lleva a cada una de las páginas.

No consigo la sintaxis en para que una función cree los menús dentro de cada página creada en "fputs". ¿Es posible hacerlo?

Os dejo el código... y gracias de antemano por las molestias.

Código: [Seleccionar]
$array=array(1=>"Inicio", "Menu2", "Menu3");
$n = count($array);

function crearMenu ($array) {
global $array;
echo "<ul>";
foreach ($array as $paginas) {
echo "<li style='list-style-type:none'><a href='" . $paginas . ".html'>" . $paginas . "</a></li>";
}
}

function CrearPagina($array) {
global $array;
foreach ($array as $paginas) {
$Crear = fopen($paginas . ".html" , "w");

fputs($Crear, "
<!DOCTYPE htm>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
<title>" . $paginas . "</title>
</head>
<body>" .

//Aquí no se hacer que se ejecute la función: crearMenu ($array) .

"</body>
</html>" );
}
fclose($Crear);
}
CrearPagina($array);
« Última modificación: 29 de Septiembre 2015, 11:52 por Alex Rodríguez »

GonzaH

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 30
  • SMFPersonal
    • Ver Perfil
    • SMFPersonal
Re:PHP.- "Escribir" una función dentro de un fputs incluído en otra función
« Respuesta #1 en: 26 de Septiembre 2015, 21:43 »
Hola HumbertoV, es la primara vez que hago esto y capaz que mi resolucion sea un poco ortodoxa. Pero bueno esta es una de las tantas forma que se podria hacer.

Código: [Seleccionar]
<?php
function crearPagina ($nombrePagina$nombreMenu) {
   
//recorro con el bucle el array $nobmrePagina.
   
for($i 0$i count($nombrePagina); $i++) {
      
$crear fopen($nombrePagina[$i].'.html''w') or die('Problema con la creacion');
      
fputs($crear
'<html>
   <head>
      <title>
      </title>
   </head>
   <body>
      <ul>'
);
     
fputs($crear"\n");
     
//recorro con el bucle el array $nombreMenu y llamo a la funcion crearMenu para pinte los menu
         
for($j 0$j count($nombreMenu); $j++) {
            
crearMenu($crear$nombrePagina[$j], $nombreMenu[$j]);
         }
      
fputs($crear
'     </ul>
   </body>
</html>'
);
   
//cada vuelta quede el primer bucle que recorre alas pagina cierro.
      
fclose($crear);
   }
   
   
//Pinto la Primera Pagina...
   
$pintarPagina fopen($nombrePagina[1].'.html''r');
       while(!
feof($pintarPagina)) {
         
$linea fgets($pintarPagina);
         echo 
$linea;

      }
   
fclose($pintarPagina);
}

function 
crearMenu($ref$pagina$menu) {
   
fputs($ref"\t\t\t");
   
fputs($ref
'<li><a href="'.$pagina.'.html">'.$menu.'</a></li>'
   
);
   
fputs($ref"\n");
}


$nombrePagina = array('Pagina1''Pagina2''Pagina3''Pagina4''Pagina5');
$nombreMenu = array('Menu1''Menu2''Menu3''Menu4''Menu5');

$pagina crearPagina($nombrePagina$nombreMenu);
?>


¡Saludos!.

HumbertoV

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 4
    • Ver Perfil
Re:PHP.- "Escribir" una función dentro de un fputs incluído en otra función
« Respuesta #2 en: 28 de Septiembre 2015, 11:14 »
Gracias Gonza. Le echo un vistazo.

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".