Barra laterale

programmazione:php:funzione_per_template

Questa è una vecchia versione del documento!


Una semplice funzione php per usare i template

Autore: Fabio Di Matteo
Ultima revisione: 28/06/2023 - 10:04

Alle volte puo' essere utile separare il più possibile il codice php dall'html o dal javascript o ancora dai fogli di stile. 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>

programmazione/php/funzione_per_template.1688976423.txt.gz · Ultima modifica: 10/07/2023 - 10:07 da Fabio Di Matteo