我是PHP的新手(3天),我理解使用includes创建高级模板的基本概念。我想进一步利用这个工具来加载更细粒度的内容,但我不知道如何处理这个问题。下面的html是一个与php包含在一起的页面模板的示例。如果您引用此html,请假设我在此处包含的页面上有一个小部件:<?php include('include/WIDGET.php'); ?>
。在最简单的场景中,窗口小部件上方会有一个“Widget 2”的链接。点击此链接,我希望将WIDGET.php
内容替换为widget2.php
。如何操纵包含以加载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>
答案 0 :(得分:0)
要更改包含的文件,您需要为页面提供某种参数,可以有条件地包含正确的小部件。
例如,将其包含在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框架来利用一些路由和模板解决方案已经为你设置了。