「user1.html」、「user2.html」、または同様のファイルの束を含むディレクトリがどこかにあるように思えます(投稿から離れただけです)。基本的に同じテンプレートであるため、これらはすべて同じか類似しています。
私の推奨事項: ユーザー ID (または名前、ただし配列は任意) をテンプレートにマップするデータベース テーブル (またはフラット ファイル、ただしデータベース テーブルをお勧めします) を用意します。たとえば、user1 と user2 が template_default.html を使用し、user3 が template_popular.html を使用する場合、データベースには次のようになります。
name|template
user1|template_default.html
user2|template_default.html
user3|template_popular.html
次に、ユーザーに表示するページを現在決定しているコードで、ユーザーが選択したテンプレートをデータベースから引き出して代わりに表示するように変更します。したがって、127 ページではなく、1 ページまたは 2 ページしかありません。
ユーザーがテンプレートを編集することを許可されている場合、それはテーブルにメタデータとして保存されることもあり、置換パラメーターを使用してそれをテンプレートに追加することができます。
例:
MySQL テーブル:
CREATE TABLE user_templates (
`user` varchar(100),
template varchar(100)
);
新しいユーザーを受け取ったら:
INSERT INTO user_templates(`user`,template) VALUES("<username>","default_template.html");
ユーザーが新しいテンプレートを選択すると:
UPDATE user_templates set template = "<new template>" WHERE `user` = "<username>";
ユーザーがユーザーのページをロードすると (これは php で行われます):
$template = "default_template.html";
$query = "SELECT template FROM user_templates WHERE `user` = \"" . mysql_real_escape_string($username) . "\"";
$result = mysql_query($query,$databaseHandle);
if ($result && mysql_num_rows($result) > 0) {
$template = mysql_result($result,0,"template");
}
// 1st way to do it
$pageToLoad = "http://www.someserver.com/templates/$template";
header("Location: $pageToLoad");
// 2nd way, if you want it embedded in a page somewhere
$directory = "/var/www/site/templates/$template";
$pageContents = file_get_contents($directory);
print "<div id=\"userPage\">$pageContents</div>";