我已经看到大量网站有一个php文件(或没有扩展名文件)和多个页面。 一个例子是:website.com / page.php?id = 4当页面内容不同时,如果有不同的ID号(而不是4 - 例如7),那么页面内容会有所不同。
现实生活中的一个例子是游戏网站,其中标题和游戏对象随着ID号的变化而变化 - 您可以看到here或here:
正如你所看到的 - 游戏标题和游戏变化。
此外,我确定您甚至可以意识到YouTube可以执行此操作: youtube.com/watch?v=610XM39EE1o - 不同的视频标题,视频,说明,评论等。 youtube.com/watch?v=LnUGl_A1cYA - 不同的视频标题,视频,说明,评论等。
人们如何做到这一点?如果他们使用数据库,他们会在那里存储WHOLE html代码(即,在其中一个YouTube链接上,右键单击并选择“查看源代码”) - 或者将它们分配给另一个页面(即页面) .php?id = 1会从/files/pages/1.php中检索内容 - 但这在存储上会很糟糕而且毫无意义,如果这就是它的完成方式,那么论坛必须让人感到困惑,如果它们可以有像showtopic这样的东西.PHP ID = 1701&安培;。showpost = 21
这是怎么做到的?请不要申请我尝试使用的代码,因为我不知道从哪里开始!。
提前感谢您的任何答案!如果这可能与任何内容重复,我很抱歉 - 无论如何我都不会理解他们在这里使用答案的一半语言!
答案 0 :(得分:2)
您基本上只有一个页面,或几个显示模板内容的页面。模板不会更改,但模板中的内容会更改(对应于URL中的参数)。
伪代码:
<?php
$id = isset($_GET['id']) && is_valid_id($_GET['id']) ? $_GET['id'] : null;
if (!isset($id)) {
// 404!
}
// get data
$sql = "SELECT * FROM forum WHERE id = $id";
// etc...
?>
// display HTML
<p>Welcome to forum: <?php echo $result['title']; ?></p>
有许多不同的方法来整理文件以使其更易于维护,但这是基本的想法。
答案 1 :(得分:0)
html不存储在数据库中 - 存储html将包含的数据。我们假设您有一个非常基本的博客,其中每个页面都是myblog.php?post=id
,其中id
是代表该特定博客文章的某个数字。在数据库中,您可能有一个表:
Table: articles
-------------------------------------------------------------------------
| ID | Title | Content |
======================================================================= |
| 1 | My First Article | This is a story about...blah blah blah |
| 2 | Another Article | Blah blah blah story content here |
| ... | ... | .... |
| 56 | My 56th Article! | Here is a great story about blah blah |
-------------------------------------------------------------------------
然后,您有一个php页面myblog.php
,用于检查网址中的id
。它使用id
从数据库表articles
中获取相应的文章。我们假设我们正在使用id=1
显示文章,因此网址为myblog.php?id=1
if (isset($_GET['id']))
$id = $_GET['id'];
else die('No article id found!');
$query = "SELECT title, content FROM articles WHERE id = $id";
// use mysqli or pdo to execute this query, and you'll get an array with that article's data, in this example, article 1...
$data['title'] == 'My First Article';
$data['content'] == 'This is a story about...blah blah blah';
然后,将该数据插入用于显示任何给定文章的html模板
<h1><?=$data['title']?></h1>
<p><?=$data['content']?></p>
所以你看,每篇文章都会有一个标题来显示标题<h1>
,以及一个显示文章内容<p>
的区域。 myblog.php
与每篇文章的布局相同 - 它具有相同的html和css - 但它取决于您想要显示的文章的id
,并填写适当的区域。