La solucion sera usar un txt para guardar la informacion generada y de ahi llamar los modulos.Saludos a todos, estoy intentando hacer un script que liste algunos archivos que esten dentro de alguna ruta especificada al llamar la funcion y que muestren un instruccion para asi llamar paginas dentro de una pagina, a manera de modulos.
El problema es el siguiente, tengo la funcion hecha pero por algun motivo ejecuta las ordenes y genera los datos que quiero incluir en un archivo, pero al llamar la funcion el texto generado no se mantiene como codigo sino se muestra en el navegador como texto plano.
Esta es la funcion
function mostrar_modulos($ruta){
// Se comprueba que realmente sea la ruta de un directorio
// Abre un gestor de directorios para la ruta indicada
// Recorre todos los archivos del directorio
while (($archivo = readdir($gestor)) !== false) { // Solo buscamos archivos sin entrar en subdirectorios
$nombremod = substr("$archivo", 0, -4); //echo "<a href='".$ruta."/".$archivo."' title='".$archivo."'>".$archivo."</a>";
$modulos = "\$conf['$nombremod'] = array( 'archivo' => '$archivo' );<br/>";
print "$modulos";
}
}
// Cierra el gestor de directorios
} else {
echo "No es una ruta de directorio valida<br/>";
}
}
Genera esta linea de codigo por cada archivo encontrado dentro del directorio indicado
$conf['error'] = array( 'archivo' => 'error.php');
La funcion se llama de esta manera
mostrar_modulos("./modulos/prueba/");
Pero en el navegador imprime el bloque de php de esta manera
<?php
$conf['test1'] = array( 'archivo' => 'test1.php' );<br
/> $conf['test2'] = array( 'archivo' => 'test2.php' );<br
/> $conf['test3'] = array( 'archivo' => 'test3.php' );<br
/> $conf['test4'] = array( 'archivo' => 'test4.php' );<br
/> $conf['test5'] = array( 'archivo' => 'test5.php' );<br
/> $conf['test6'] = array( 'archivo' => 'test6.php' );<br
/> ?>
En ves de ejecutar el codigo.
Cabe decir que lo que quiero es automatizar un poco el sistema creado en zonaphp
http://zonaphp.com/creando-webs-modulares/.
La cuestion es llamar la funcion dentro del archivo conf para crear la variable con su respectivo array y despues solo llamar el modulo con el enlace, agradeceria alguna orientacion para poder hacer que los datos se queden como codigo y sean ejecutados por el navegador en vez de mostrar el bloque de codigo fuente tal cual.
Gracias.
SI A ALGUIEN LE INTERESA ESTA FUE LA SOLUCION
<?php
function mostrar_modulos($ruta){
// Se comprueba que realmente sea la ruta de un directorio
if (is_dir($ruta)){
// Abre un gestor de directorios para la ruta indicada
$gestor = opendir($ruta);
// Recorre todos los archivos del directorio
while (($archivo = readdir($gestor)) !== false) {
// Solo buscamos archivos sin entrar en subdirectorios
$nombremod = substr("$archivo", 0, -4);
if (is_file($ruta."/".$archivo)) {
$rutacorrecta = substr("$ruta", 9);
//echo "<a href='".$ruta."/".$archivo."' title='".$archivo."'>".$archivo."</a>";
$modulos = "\$conf['$nombremod'] = array( 'archivo' => '$rutacorrecta/$archivo' );";
$file=fopen("conf.php","r+") or die("Problemas");
fseek($file, -3, SEEK_END);
fwrite($file,"$modulos;?>");//escribir el contenido para incluir en conf.php desde txt
fclose($file);
}
}
// Cierra el gestor de directorios
closedir($gestor);
} else {
echo "No es una ruta de directorio valida<br/>";
}
}
mostrar_modulos("./modulos/prueba");
?>