⊗ppPmSDFl 437 of 447 menu

Failu dzinis PHP

Implementēsim vietnes dzinēju, kas ļaus mums izveidot veidnes failu, kuram atkarībā no URL tiks pievienots dažāds saturs.

Pieņemsim, ka mūsu lapas struktūra izskatās šādi:

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

Ievietosim tajā vietā, kur jānotiek satura ievietošanai, kādu mūsu izdomātu komandu ievietošanai, piemēram, šādu: {{ content }}. Mainīsim mūsu vietnes veidni:

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

Izveidosim mapi view, kurā izvietosim satura failus. Tieši šajā mapē vai apakšmapēs.

Pirmais fails būs šāds:

<div> content 1 </div>

Otrais fails būs šāds:

<div> content 2 </div>

Trešais fails būs šāds:

<div> content 3 </div>

Tagad panāksim, lai pēc URL no adreses joslas tiktu ielādēts atbilstošais fails. Mūsu gadījumā pēc URL /page1 būs pirmais fails, pēc URL /dir/page2 - otrais, un pēc URL /dir/sub/page3 - trešais.

Sāksim implementāciju. Vispirms failā .htaccess panāksim, lai visi pieprasītie adresi, izņemot resursu failus, tiek novirzīti uz lapu index.php:

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

Lapā index.php iegūsim mainīgajā pieprasīto URL:

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

Pēc tam iegūsim veidnes faila tekstu:

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

Tagad pēc URL iegūsim no mapes view atbilstošo satura failu:

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

Aizvietosim veidnes tekstā mūsu izdomāto komandu ar iegūto no faila saturu:

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

Izvadīsim pārlūkprogrammā veidnes failu ar ievietoto saturu:

<?php echo $layout; ?>

Apvienosim visu kopā un iegūsim šādu kodu:

<?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; ?>

Implementējiet aprakstīto failu dzinēju.

Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt