(1) It's a problem if you have 2 or 3 (never mind N where N is large) different web pages that have the same stuff at the top of the bottom. I mean you can have
<?php include("header.php") ?>
... body ...
<?php include("footer.php") ?>
but...
(2) ... in either case it is just as easy to write
<?php
... some "router" that tests $_GET, ... to set $body_file ...
include("header.php");
include($body_file)
include("footer.php");
?>
where you have the option of putting headers on before you include header.php, showing a different header
or footer conditional, etc. This approach is structurally stable and scales with the complexity of your
application no matter what you're doing...
(3) ... for instance say you want to write a page that might return a different format depending on the headers, the router can return JSON if that is called for, or XML if that is called for, or HTML inside the site's global template if that is called for.