⊗ppPmSDFl 437 of 447 menu

Motor baseado em arquivos em PHP

Vamos implementar um motor de site que nos permitirá criar um arquivo de modelo, ao qual, dependendo do URL, será conectado conteúdo variado.

Suponha que a estrutura da nossa página seja a seguinte:

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

Vamos, no local onde a inserção de conteúdo deve ocorrer, inserir um comando inventado por nós para a inserção, por exemplo, este: {{ content }}. Vamos alterar o modelo do nosso site:

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

Agora, vamos criar uma pasta view, na qual colocaremos os arquivos de conteúdo. Diretamente nesta pasta ou em subpastas.

O primeiro arquivo será assim:

<div> content 1 </div>

O segundo arquivo será assim:

<div> content 2 </div>

O terceiro arquivo será assim:

<div> content 3 </div>

Agora, vamos fazer com que, com base no URL da barra de endereços, o arquivo correspondente seja puxado. No nosso caso, para a URL /page1 será o primeiro arquivo, para a URL /dir/page2 - o segundo, e para a URL /dir/sub/page3 - o terceiro.

Vamos começar a implementação. Primeiro, no arquivo .htaccess, vamos fazer com que todos os endereços solicitados, exceto arquivos de recursos, sejam redirecionados para a página index.php:

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

Na página index.php, vamos obter o URL solicitado em uma variável:

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

Em seguida, vamos obter o texto do arquivo de modelo:

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

Agora, com base no URL, vamos obter da pasta view o arquivo de conteúdo correspondente:

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

Vamos substituir no texto do modelo o comando que inventamos pelo conteúdo obtido do arquivo:

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

Vamos exibir no navegador o arquivo de modelo com o modelo substituído:

<?php echo $layout; ?>

Vamos juntar tudo e obter o seguinte 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 o motor baseado em arquivos descrito.

Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar