我是PHP新手(3天),我了解使用includes创建高级模板的基本概念。我想进一步利用这个工具来加载更细粒度的内容,但我不确定如何处理。下面的html是一个页面模板的例子,它与php-includs放在一起。如果你引用这个html,假设我在这里包含的页面上有一个小部件:<?php include('include/WIDGET.php'); ?>
。在最简单的场景中,小部件上方会有一个链接,上面写着"小部件2"。单击此链接后,我希望WIDGET.php
内容替换为widget2.php
。如何操作include以加载widget2.php
?
HTML
<!-- File: index.php -->
<html>
<head>
<?php include('include/head.php');?>
<title><?php echo $siteName;?></title>
</head>
<body>
<?php include('include/header.php'); ?>
<!-- CONTENT -->
<?php include('include/WIDGET.php'); ?>
<?php include('include/main-content.php'); ?>
<!-- CONTENT END -->
<?php include('include/footer.php'); ?>
</body>
</html>
要更改包含的文件,您需要为页面提供某种参数,该参数可以有条件地包含正确的小部件。
例如,将其包含在URL查询字符串中,例如:
http://yoursite/index.php?content=widget2
然后,在您的PHP文件中,您可以获得以下值:
if (isset($_GET['content']) && !empty($_GET['content'])) {
$widget = $_GET['content'];
} else {
$widget = 'widget';
}
并将其包含在您的HTML:中
[...]
<!-- CONTENT -->
<?php include('include/' . $widget . '.php'); ?>
[...]
这只是给你一个相关逻辑的例子,但我不会使用我提供的代码,因为它非常不安全,而且不会检查文件等的存在
我知道你才刚刚开始,一次需要学习很多东西,但你可能需要考虑使用Zend、Symfony或CakePHP等PHP框架,以利用已经为你设置的一些路由和模板解决方案。