如何在不更改页面的情况下将html代码段加载到页面中

时间:2014-04-18 15:59:52

标签: php html templates include

我是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>

1 个答案:

答案 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框架来利用一些路由和模板解决方案已经为你设置了。