⊗ppPmSDFl 437 of 447 menu

Motor basado en archivos en PHP

Implementaremos un motor de sitio que nos permitirá crear un archivo de plantilla, al cual dependiendo de la URL se le conectará contenido variado.

Dejemos que la estructura de nuestra página se vea de la siguiente manera:

<!DOCTYPE html> <html> <head> <title>title</title> </head> <body> <header> header </header> <main> content </main> <header> footer </header> </body> </html>

Pongamos en el lugar en el que debe ocurrir la inserción de contenido algún comando inventado por nosotros para la inserción, por ejemplo así: {{ content }}. Cambiemos la plantilla de nuestro sitio:

<!DOCTYPE html> <html> <head> <title>title</title> </head> <body> <header> header </header> <main> {{ content }} </main> <header> footer </header> </body> </html>

Hagamos ahora la carpeta view, en la cual colocaremos los archivos de contenido. Directamente en esta carpeta o en subcarpetas.

El primer archivo será así:

<div> content 1 </div>

El segundo archivo será así:

<div> content 2 </div>

El tercer archivo será así:

<div> content 3 </div>

Hagamos ahora que según la URL de la barra de direcciones se cargue el archivo correspondiente. En nuestro caso, por la URL /page1 será el primer archivo, por la URL /dir/page2 - el segundo, y por la URL /dir/sub/page3 - el tercero.

Empecemos con la implementación. Primero en el archivo .htaccess hagamos que todas las direcciones solicitadas, excepto los archivos de recursos, se redirijan a la página index.php:

RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} !\.(js|css|ico|jpg|png|gif)$ RewriteRule .+ index.php

En la página index.php obtendremos en una variable la URL solicitada:

<?php $url = $_SERVER['REQUEST_URI']; ?>

Luego obtendremos el texto del archivo con la plantilla:

<?php $layout = file_get_contents('layout.php'); ?>

Ahora por la URL obtendremos de la carpeta view el archivo de contenido correspondiente:

<?php $content = file_get_contents('view' . $url . '.php'); ?>

Reemplacemos en el texto de la plantilla nuestro comando inventado por el contenido obtenido del archivo:

<?php $layout = str_replace('{{ content }}', $content, $layout); ?>

Mostremos en el navegador el archivo de plantilla con la plantilla insertada:

<?php echo $layout; ?>

Juntemos todo y obtendremos el siguiente código:

<?php $url = $_SERVER['REQUEST_URI']; $layout = file_get_contents('layout.php'); $content = file_get_contents('view' . $url . '.php'); $layout = str_replace('{{ content }}', $content, $layout); echo $layout; ?>

Implemente el motor basado en archivos descrito.

Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar