While I'm an expert at asp and asp.net (that's my job), I'm a noob to PHP. I did use includes, but really didn't spend much time coming up with an "engine" so to speak. There is no db behind it. What's a sym-link? 
sym-link:Ever work on a Unix filesystem much? Every file comes in two parts - the actual data, and the reference to that data (which is itself data in a special file called a directory right?). In Unix it is possible to "link" to the *same* data multiple times so that you can access/edit it from different places but it is always just the same data no matter which handle you use. Now, a "hard link" is for when it is on the same file system, it points straight to the data itself, while a sym link is like a windows shortcut (except it works) which means you can link to any file name, but when that directory entry moves all your sym-links break. What you tend to find is that you always do sym-links for minor mucking around stuff, since hard links occassionaly fail due to file system permissions and such.
db:Since you are an asp worker, and asp is from Redmond, and Redmond is evil, I'll forgive you this once.

But db != Oracle, db != dBase, db != SQL Server 5. A database is just an organised collection. I don't know about anyone else, but way, way, wayyyyyyy ago when I first started writing games, the first program is always a big bunch of custom code for each room. That's ok, it's not scalable though. So the next step is to "convert" all of your rooms into entries in an array, like:
("The Dining Room", "You see a .........", 12, -1, -1, -1, 14,

and then the "engine" just takes which room you are in and renders all of the page by cutting and pasting that room's entries.
The first attachment is a php script I have so that me and my friends can set up games and ftp transfers quickly without needing to log into our routers to find out our fricking IP numbers. The script is auto-refreshing, because I actually leave my server on that page so I can ftp into it no matter where I am, even though the ip may change at any time. By sym-linking this one script to different names, I can have each person who wants to share a different server show up in the index, without having to write actual code for each person.
The second attachment is a very scrappy php file I just threw together to show you what I mean. You probably are doing something along these lines anyway, so this is what it might look like in php.

(the .txt was added to the file names to make them postable to this forum)