Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: HumbertoV en 25 de Septiembre 2015, 19:44

Título: PHP.- "Escribir" una función dentro de un fputs incluído en otra función
Publicado por: HumbertoV en 25 de Septiembre 2015, 19:44
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);
Título: Re:PHP.- "Escribir" una función dentro de un fputs incluído en otra función
Publicado por: GonzaH 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!.
Título: Re:PHP.- "Escribir" una función dentro de un fputs incluído en otra función
Publicado por: HumbertoV en 28 de Septiembre 2015, 11:14
Gracias Gonza. Le echo un vistazo.