0

我试图让我的生活更轻松,并让所有页面在一个文件中具有相同的页脚和标题内容,这就是我目前所拥有的:

有内容的页面

<?php
include ("content.php");

echo $page_header;

?>

<div id="content">
</div>

<?php

echo $page_footer;

?>

内容.php

<?php

    // This is the header which we want to have on all pages
    $page_header = include ("resources/content/header.php");

    // This is the footer which we want on all pages
    $page_footer = include ("resources/content/footer.php");

?>

Header.php 示例

<html>
    <head>
        <title>This is my title</title>
    </head>
    <body>
        <div id="logo">
        </div>

页脚.php 示例

        <div id="footer">Copyright to me!</div>
    </body>
</html>

我遇到的问题是我的 header.php 内容并未全部显示并导致页面格式出现问题。header.php 确实包含一些 phpif语句和一些内联 javascript ......这有关系吗?

有更好的方法吗?

请注意:我在本地使用 PHP 5,而我的服务器是 PHP 4,所以答案需要对两者都有效

4

1 回答 1

2

一种方法是为此使用输出缓冲函数。

更改content.php文件:

ob_start();
include ("resources/content/header.php");
$page_header = ob_get_clean();

ob_start();
include ("resources/content/footer.php");
$page_footer = ob_get_clean();

ob_start()函数为任何输出创建一个临时缓冲区,然后include()使其输出不是页面响应,而是由ob_start(). ob_get_clean()收集缓冲区的内容,销毁它并将收集到的数据作为字符串返回。


@u_mulder提到的另一种方法是将这些文件简单地include()放在需要它们的地方。

使用内容文件更改页面:

<?php include ("resources/content/header.php"); ?>

<div id="content">
</div>

<?php include ("resources/content/footer.php"); ?>

但是在某些时候,您可能需要一些复杂的模板处理引擎。有很多用于 php 的。

于 2013-09-22T08:03:00.897 回答