首先,如果标题具有误导性,我很抱歉。我觉得很难说出来。
我的问题是关于网页结构相同,但内容不同的网站。
以Facebook为例。每个人的个人资料都是" /profile.php"某种形式,但根据您查看的个人资料,内容不同。
在我看来,对于配置文件,只有一个.php文件,它根据数据库中的配置文件ID加载内容。
所以,问题是: 某些类型的CMS,如Drupal,可以做到这一点。您创建一个节点,它有一些内容。您创建了具有不同内容的相同类型的另一个节点,但它确实不会在您的服务器上为每个节点创建一个全新的.php文件,对吧?这个过程是什么?我可以使用PHP编程吗?
我是PHP的初学者,但我非常想学习如何实现这一目标。
此外,在任何讽刺之前,只需使用Drupal"评论出现了,请记住,我已经使用了它,但是,我想再看看我是否可以自己学习如何做到这一点。
答案 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库可以使这很容易。我使用Knockout和Sammy.js。有关如何执行此操作的教程,请查看the knockout tutorial。