Autor
|
Tema: [Solucionado]Problema con función, crea e imprime datos pero no ejecuta. (Leído 8,841 veces)
|
deadfrommayhem
|
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"); ?>
|
|
« Última modificación: 24 Septiembre 2017, 02:02 am por deadfrommayhem »
|
En línea
|
|
|
|
engel lex
|
no terminé de entender, muestra una captura de tu navegador a ver como queda...
por otro lado para crear webs modulares no cargas a lo loco :s
por ultimo, para crear webs modulares crear tu propio sistema es bueno para aprender, pero no es util reinverntar el agua tibia... para eso hay sistemas bastante bien armados y maduros ya como son los MVC
yo uso codeigniter, pero está por ejemplo cakePHP, zend, etc...
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
deadfrommayhem
|
Aca estan las capturas, la cuestion de esto es aprender un poco no reinventar la rueda Esta es cuando doy ctrl+u y muestra el codigo fuente. El codigo fuente de la funcion Lo que muestra el navegador cuando se llama a la funcion url de imagen
|
|
|
En línea
|
|
|
|
engel lex
|
eso parece a que estás incluyendo sin abrir la etiqueta <?php o cerrandola donde no debes
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
deadfrommayhem
|
Si lees el código de la función, específicamente crea las etiquetas php, pero no ejecuta el código, sino que lo presenta como en la primer imagen, la cuestión solo es que lo que quiero es que ese código se ejecute en vez de presentarse en el html de la pagina como texto.
He intentado cambiar algunas cosas en donde se genera la variable módulos, pero sin conseguir éxito, ¿algún consejo?
|
|
|
En línea
|
|
|
|
engel lex
|
ahora si lo vi! lo que estás haciendo es creando pero como string... incluso lo formaste como html //echo "<a href='".$ruta."/".$archivo."' title='".$archivo."'>".$archivo."</a>"; $modulos = "\$conf['$nombremod'] = array( 'archivo' => '$archivo' );<br/>"; print "$modulos"; }
creo que lo que quieres es $modulos = $conf[$nombremod] = array( 'archivo' => $archivo ); }
y luego haces lo que tengas que hacer con los modulos cargados
|
|
« Última modificación: 30 Julio 2017, 00:52 am por engel lex »
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
deadfrommayhem
|
Mismo error que habia enfrentado anteriormente Array Notice: Array to string conversion in C:\xampp\htdocs\sickertk\mostrar_archivos.php on line 79 Array Notice: Array to string conversion in C:\xampp\htdocs\sickertk\mostrar_archivos.php on line 79 Array Notice: Array to string conversion in C:\xampp\htdocs\sickertk\mostrar_archivos.php on line 79 Array Notice: Array to string conversion in C:\xampp\htdocs\sickertk\mostrar_archivos.php on line 79 Array Notice: Array to string conversion in C:\xampp\htdocs\sickertk\mostrar_archivos.php on line 79 Array?>
Con esta linea modificada de esta manera $modulos = '$conf['.$nombremod.'] = array( '.archivo.' => '.$archivo.' );<br/>';
Da estos errores... Notice: Use of undefined constant archivo - assumed 'archivo' in C:\xampp\htdocs\sickertk\mostrar_archivos.php on line 79 $conf[test2] = array( archivo => test2.php ); Notice: Use of undefined constant archivo - assumed 'archivo' in C:\xampp\htdocs\sickertk\mostrar_archivos.php on line 79 $conf[test3] = array( archivo => test3.php ); Notice: Use of undefined constant archivo - assumed 'archivo' in C:\xampp\htdocs\sickertk\mostrar_archivos.php on line 79 $conf[test4] = array( archivo => test4.php ); Notice: Use of undefined constant archivo - assumed 'archivo' in C:\xampp\htdocs\sickertk\mostrar_archivos.php on line 79 $conf[test5] = array( archivo => test5.php ); Notice: Use of undefined constant archivo - assumed 'archivo' in C:\xampp\htdocs\sickertk\mostrar_archivos.php on line 79 Siento que ando cerca · No haga doble post, usa el boton modificar >aquí las reglas del foro -Engel Lex
|
|
« Última modificación: 30 Julio 2017, 01:02 am por engel lex »
|
En línea
|
|
|
|
engel lex
|
fijate el codigo (lo había corregido sin el echo) $modulos = $conf[$nombremod] = array( 'archivo' => $archivo ); }
que quieres hacer exactamente con eso? que se muestre el contenido de los archivos o que se carguen las rutas a la variable $modulos?
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
deadfrommayhem
|
fijate el codigo (lo había corregido sin el echo) $modulos = $conf[$nombremod] = array( 'archivo' => $archivo ); }
que quieres hacer exactamente con eso? que se muestre el contenido de los archivos o que se carguen las rutas a la variable $modulos? Especificamente lo que deseo hacer es que cuando la funcion arroje sus datos el codigo php se ejecute, de manera que cuando quiera llamar el modulo solo tenga que dar click en el enlace que lleva este formato. ?mod=nobredemodulo. al tener ya el modulo con nombre y archivo ya se cual modulo debo llamar y como hacerlo. No se si me explico.
|
|
|
En línea
|
|
|
|
engel lex
|
allí está entonces ya el modulo cargado... lo que tienes que mostrar en un echo es el nombre del modulo
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Compila bien, pero no ejecuta !! Solucionado
Java
|
Vingilot
|
4
|
4,152
|
8 Enero 2008, 15:20 pm
por Vingilot
|
|
|
Problema en DevC++, compila pero no se ejecuta.
Programación C/C++
|
jairogon
|
9
|
34,842
|
11 Julio 2010, 21:32 pm
por codeliber
|
|
|
El programa se ejecuta en el localhost pero en el servidor no se ejecuta
PHP
|
ferarteclasico
|
2
|
4,431
|
8 Julio 2011, 01:38 am
por дٳŦ٭
|
|
|
Destructor se ejecuta bien pero da error al final de la ejecución [SOLUCIONADO]
Programación C/C++
|
SARGE553413
|
5
|
3,429
|
25 Abril 2013, 16:00 pm
por SARGE553413
|
|
|
[Solucionado] funcion de clase no imprime datos de la db
PHP
|
gAb1
|
2
|
3,187
|
26 Marzo 2016, 18:08 pm
por gAb1
|
|