if you change the name of your page from my_page.html to my_page.php it should look identical on a server properly configured to handle php.
there are two ways I can think of to use php for a nav panel:
1) add an iframe to all of your html pages so that they point to some php file. put links=xxx in the query string so you can tell the php file which links to fetch like this:
an html snippet:
blah blah blah blah blah blah blah blah blah blah blah blah
<!-- nav panel -->
<iframe src="nav_panel.php?links=23"></iframe>
then your php page migh look like this:
if ($_GET['links'] == '22') {
echo '<a href="link1.html">22 is awesome 1</a>';
echo '<a href="link2.html">22 is awesome 2</a>';
} else if ($_GET['links'] == '23') {
echo '<a href="link1a.html">23 is awesome 1</a>';
echo '<a href="link2a.html">23 is awesome 2</a>';
}
2) create your sitewide page template in a php file and specify which html page you want to display in it with a url like this:
http://mydomain.com/index.php?page='foo'
then your index.php might look like this
<?
// VERY IMPORTANT - allowing the user to specify whatever they want is a security hazard
// so we should screen the page var
$safe_pages = array('foo', 'bar', 'all', 'legal', 'pages', 'must', 'go', 'in', 'this', 'array');
if (!in_array($_GET['page'], $safe_pages)) {
die ('invalid page specified');
}
?>
<html>
<body>
<table>
<tr><td colspan="2">HEADER PANE</td></tr>
<tr><td>LEFT NAV</td><td><? include($_GET['page'] . '.htm') ?></td></tr>
<tr><td colspan="2">FOOTER PANE</td></tr>
</table>
</body>
</html>
NOTE: You would need to strip all the header and footer information out of your existing files to use this second approach.
There are other ways that people use to do this sort of thing. phpBB, for instance, uses a template-parsing approach. you can visit their site for more info:
http://phpbb.com