Если вы хотите извлечь максимальную пользу от повторного использования кода / элементов, то вы на правильном пути, выбрав второй вариант:
B. создайте индексный файл с чем-то вроде:
<?php include 'header.php'; ?>
<?php include 'content1.php'; ?>
как же тогда, когда в меню нажата ссылка на content2.php, заголовок все еще находится на этой странице?
Вот как (упрощенный пример):
Направьте все похожие запросы (content1,2,3) через ваш index.php
скрипт, используя строку запроса - mod_rewrite
может сделать это красиво. Затем обслуживайте основной раздел контента на основании запроса.
Например, ссылка:
<a href='index.php?page=content1'>Content 1</a>
И обнаружение контента для обслуживания:
<php
$pages['content1'] = 'content1.php';
$pages['content2'] = 'content2.php';
$pages['default'] = $pages['content1']; //set default content
$page = 'default';
if(isset($pages[$_GET['page']]){
$page = $pages[$_GET['page']]; //make sure the filename is clean
}
?>
<?php include 'header.php'; //header here?>
<?php include $page; //correct content here?>
Мало того, что есть единственное место, чтобы изменить заголовок, но теперь есть единственное место, чтобы изменить весь макет.
Конечно, это просто упрощенный пример, есть много PHP-фреймворков, которые делают все это для вас (используя MVC).