⊗ppPmSDFl 437 of 447 menu

Μηχανή σε αρχεία σε PHP

Θα υλοποιήσουμε μια μηχανή ιστότοπου που θα μας επιτρέψει να δημιουργήσουμε ένα αρχείο προτύπου, στο οποίο ανάλογα με το URL θα συνδέεται διαφορετικό περιεχόμενο.

Ας υποθέσουμε ότι η δομή της σελίδας μας μοιάζει ως εξής:

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

Ας βάλουμε στο σημείο όπου πρέπει να γίνεται η εισαγωγή περιεχομένου μιαν εντολή εισαγωγής που θα επινοήσουμε εμείς, για παράδειγμα αυτήν εδώ: {{ content }}. Ας αλλάξουμε το πρότυπο του ιστότοπού μας:

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

Ας δημιουργήσουμε τώρα έναν φάκελο view, στον οποίο θα τοποθετούμε τα αρχεία περιεχομένου. Απευθείας σε αυτόν τον φάκελο ή σε υποφακέλους.

Το πρώτο αρχείο θα είναι ως εξής:

<div> content 1 </div>

Το δεύτερο αρχείο θα είναι ως εξής:

<div> content 2 </div>

Το τρίτο αρχείο θα είναι ως εξής:

<div> content 3 </div>

Ας κάνουμε τώρα έτσι ώστε βάσει του URL από τη γραμμή διευθύνσεων να φορτώνεται το αντίστοιχο αρχείο. Στην περίπτωσή μας, από το url /page1 θα φορτώνεται το πρώτο αρχείο, από το url /dir/page2 - το δεύτερο, και από το url /dir/sub/page3 - το τρίτο.

Ας αρχίσουμε την υλοποίηση. Αρχικά, στο αρχείο .htaccess θα κάνουμε έτσι ώστε όλες οι αιτηθείσες διευθύνσεις, εκτός από αρχεία πόρων, να ανακατευθύνονται στη σελίδα index.php:

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

Στη σελίδα index.php θα πάρουμε σε μια μεταβλητή το αιτηθέν URL:

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

Στη συνέχεια θα πάρουμε το κείμενο του αρχείου με το πρότυπο:

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

Τώρα βάσει του URL θα πάρουμε από τον φάκελο view το αντίστοιχο αρχείο περιεχομένου:

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

Θα αντικαταστήσουμε στο κείμενο του προτύπου την εντολή που επινοήσαμε με το περιεχόμενο που πήραμε από το αρχείο:

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

Θα εμφανίσουμε στο πρόγραμμα πλοήγησης το αρχείο προτύπου με το τοποθετημένο περιεχόμενο:

<?php echo $layout; ?>

Ας τα συγκεντρώσουμε όλα μαζί και θα πάρουμε τον ακόλουθο κώδικα:

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

Υλοποιήστε την περιγραφόμενη μηχανή σε αρχεία.

Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη