实例化具有不同内容的类似网页

时间:2014-07-31 08:01:54

标签: php content-management-system

首先,如果标题具有误导性,我很抱歉。我觉得很难说出来。

我的问题是关于网页结构相同,但内容不同的网站。

以Facebook为例。每个人的个人资料都是" /profile.php"某种形式,但根据您查看的个人资料,内容不同。

在我看来,对于配置文件,只有一个.php文件,它根据数据库中的配置文件ID加载内容。

所以,问题是: 某些类型的CMS,如Drupal,可以做到这一点。您创建一个节点,它有一些内容。您创建了具有不同内容的相同类型的另一个节点,但它确实不会在您的服务器上为每个节点创建一个全新的.php文件,对吧?这个过程是什么?我可以使用PHP编程吗?

我是PHP的初学者,但我非常想学习如何实现这一目标。

此外,在任何讽刺之前,只需使用Drupal"评论出现了,请记住,我已经使用了它,但是,我想再看看我是否可以自己学习如何做到这一点。

1 个答案:

答案 0 :(得分:0)

您可以在服务器端使用PHP或客户端使用JavaScript执行此操作:

使用PHP的服务器端:

如果您导航到这样的网址:http://example.com/p.php/someParameter,它实际上会转到p.php,但整个uri都可以在$_SERVER['REQUEST_URI']获取,因此您可以删除someParameter 1}}动态部分和提供内容。这看起来像是:

<?php
$title = '';
$content = '';
$uri = $_SERVER['REQUEST_URI'];
$slash = strrpos($uri, '/');
$parameter = substr($uri, $slash + 1, strlen($uri) - $slash);

// Update the title and content based on the parameter

?><html>
    <body>
        <h1><?php echo $title; ?></h1>
        <div><?php echo $content; ?></div>
    </body>
</html>

使用JavaScript的客户端

如果您乐意在路径中使用#,那么有各种JS库可以使这很容易。我使用KnockoutSammy.js。有关如何执行此操作的教程,请查看the knockout tutorial