As MrAdam already said there are lots of ways of doing it. Basically what you are talking about is a CMS (content management system). The idea revolves around information being stored somewhere, generally in a database, and then included in the file, as and when required. An example of it at it's most basic. Imagine you have a database table like so.
Database Table
====
id,
page_name,
page_link,
page_content
On your index page you could use something like...
<?php
if(isset($_GET['id'])) {
// display requested page
$sql = "SELECT * FROM `table` WHERE id=" . $_GET['id'];
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);
echo '<h1>' . $row['page_name'] . '</h1>';
echo '<p>' . $row['page_content'] . '</p>';
} else {
// display list of pages
$sql = "SELECT `id`, `page_link` FROM `table`";
$result = mysql_query($sql);
while($row = mysql_fetch_assoc($result)) {
echo '<a href="index.php&page=' . $row['id'] . '" />' . $row['page_link'] . '</a>';
}
}
?>
Bare in mind that is a far from secure script, it doesn't check for errors or anything, but it will hopefully give you an idea of how it works. If it doesn't there are many, many tutorials available for coding CMS systems. I'm sure theres one here on PHPFreaks (I'm new so I don't know for sure), if not theres certainly one at PHPAcademy.info and at DevelopPHP.com