Autore: Fabio Di Matteo
Ultima revisione: 01/02/2024 - 11:40
Alle volte puo' essere utile separare il più possibile il codice php dall'html o dal javascript o ancora dai fogli di stile. Di seguito alcune soluzioni.
Diseguito una funzione altamente compatibile (tutte le versioni del php) che sostituisce stringhe da un file di testo in base a un array.
<?php function template($fileName, $arrayVal=[]) { $txt = file_get_contents($fileName); return strtr($txt, $arrayVal); } ?>
dove $fileName è il percorso del file html che contiene il template e $rrayVal un array del genere:
$home['{{title}}'] = 'Regalo'; $home['{{baseurl}}'] = '../static'; $home['{{regalo_title}}'] = "Regalo - scambia oggetti"; //la funzione si usa così: echo template('../static/index.html', $home);
index.html (file template) Soltanto un file di esempio
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" /> <meta name="description" content="" /> <meta name="author" content="" /> <title>{{regalo_title}}</title> <!-- Favicon--> <link rel="icon" type="image/x-icon" href="{{baseurl}}/assets/favicon.ico" /> <!-- Core theme CSS (includes Bootstrap)--> <link href="{{baseurl}}/css/styles.css" rel="stylesheet" /> </head> <body> <!-- Responsive navbar--> <nav class="navbar navbar-expand-lg "> <div class="container"> <a class="navbar-brand" href="#!">{{title}}</a> <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"><span class="navbar-toggler-icon"></span></button> <div class="collapse navbar-collapse" id="navbarSupportedContent"> <ul class="navbar-nav ms-auto mb-2 mb-lg-0"> <li class="nav-item"><a class="nav-link" href="#">Home</a></li> <li class="nav-item"><a class="nav-link" href="#!">About</a></li> <li class="nav-item"><a class="nav-link" href="#!">Contact</a></li> <li class="nav-item"><a class="nav-link active" aria-current="page" href="#">Blog</a></li> </ul> </div> </div> </nav> <!-- Page content--> <div class="container mt-5"> </div> <!-- Footer--> <footer class="py-3 bg-light"> <div class="container"><p class="m-0 text-center">Regalo , scambia cose</p></div> </footer> <!-- Bootstrap core JS--> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script> <!-- Core theme JS--> <script src="{{baseurl}}/js/scripts.js"></script> </body> </html>
Niente di strano. uso solo php :
index.php
<?php $mystring="Bella giornata!"; $mynumbers= [1,2,3]; include "template.php"; ?>
template.php
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <title><?php echo $mystring ?></title> </head> <body> <h2><?php echo $mystring ?></h2> <ul> <?php foreach($mynumbers as $item) : ?> <li><?php echo $item ?></li> <?php endforeach ?> </ul> </body> </html>