Load php files into layout template?
php
Solution
Usually people use php includes for templating more like this:
header.php
<html>
<head>
<title></title>
</head>
<body>
<div class="container">
footer.php
</div> <!-- .container -->
</body>
</html>
about.php
<?php include('header.php'); ?>
... content goes here ...
<?php include('footer.php'); ?>
This is so you don't need to continuously repeat the start/end tags on every template you make.
Problem
I'm working on my first php site, I'm running into an issue I can't see to figure out. I'm trying to have one php page that contains my structure, and others that inject their html inside, while retaining url changes so I can still direct link pages. So far this is what I'm doing, but it doesn't seem efficient: index.php ``` <html xmlns="http://www.w3.org/1999/xhtml"> <?php include("head.php"); ?> <body> <div class="container"> <!-- Navigation header --> <?php include("navigation.php"); ?> <!-- Main container --> <div id="MainContainer"> <?php include("home.php"); ?> </div> <!-- Footer --> <?php include("footer.php"); ?> </div> </body> </html> ``` about.php ``` <html xmlns="http://www.w3.org/1999/xhtml"> <?php include("head.php"); ?> <body> <div class="container"> <!-- Navigation header --> <?php include("navigation.php"); ?> <!-- Main container --> <div id="MainContainer"> About me! </div> <!-- Footer --> <?php include("footer.php"); ?> </div> </body> </html> ``` This feels totally wrong, if I ever want to change my container class, or change the structure, I now have to do it in two places instead of one. In ASP.net MVC I would have a Layout_Head.cshtml file that would contain my HTML structure and inside I can render views from different pages, the url changes but the layout is always rendered first and then the controller/actions take care of injecting the html of the needed views. How do I replicate that in PHP?