2015-05-17 41 views
-3

在我的web应用程序中,每页导航中有4页(About.html,Register.html,Quiz.html,Topic.html),页眉和页脚部分相同。现在,我希望把所有这些部分为单一的PHP包括()函数(而不是多个PHP文件)PHP include()函数

+3

你的问题是什么?你究竟在哪里遇到问题? – Ulver

+0

为什么人们低估这个?这对初学者来说是合法的基本问题。如果你倒退了,也许你可以留下一些关于去哪里去了解更多信息的评论。 – aequalsb

回答

1

然后你可以创建一个也许叫template.php文件,其中包含:

function printHeader($arg=null) { 
    echo "<div class='header'>Here is your header contents!</div>"; 
} 
function printFooter($arg=null) { 
    echo "<div class='footer'>Here is your footer contents!</div>"; 
} 

,只是适当地给他们打电话每个页面具有相同的模板,例如在“关于”页面:

include_once "template.php"; 
// ... 
printHeader(); 
// ... 
printFooter(); 
// ... 
+0

好吧,他正在使用HTML文件,所以他需要一个“集线器文件”来包含HTML文件到 – aequalsb

1

让我们考虑一个index.php文件

在文件:

<html> 
<head> 
<title><?php echo !empty($_GET['page']) ? $_GET['page'] : 'Home'; ?></title> 
<!-- head info --> 
</head> 
<body> 

<ul id="menu"> 
<?php foreach(array('About', 'Register', 'Quiz', 'Topic') as $page) : ?> 
<li><a href="<?php echo $_SERVER['PHP_SELF']; ?>?page=<?php echo $page; ?>"><?php echo $page; ?></a></li> 
<?php endforeach; ?> 
</ul> 

<div id="content"> 
<?php if (!empty($_GET['page'])) : ?> 
<h2><?php echo $_GET['page']; ?></h2> 
<?php 
    $content = file_get_contents(dirname(__FILE__) . '/' . $_GET['page'] . '.html'); 
    echo reset(explode('</body>', end(explode('<body>', $content)))); 
else : ?> 
*** home page (default) content goes here (or include it from a separate file too) *** 
<?php endif; ?> 
</div> 

<div id="footer"> 
<hr /> 
This is the footer 
</div> 

</body> 
</html> 

你必须明白,给你的问题的范围很广,并且您正在使用HTML文件的事实,这种解决方案是非常基本的。但它会回答你的问题和/或植入种子从这里学习。

例如,使用is_file()来检查页面是否实际存在。

1

1)About.html,Register.html,Quiz.html,Topic.html将它们重命名为.php。

2)添加在Topic.php(和其他文件 'sections.php'

function addHeader(){ 
    echo "THIS IS HEADER!!!"; 
} 
function addFooter(){ 
    echo "THIS IS FOOTER!!!"; 
} 
function addSparta(){ 
    echo "THIS IS SPARTA!!!"; 
} 

3))添加

include_once 'sections.php'; 

4)使用这些功能,打印出你所需要的。

但它仍然不是很好的方式来撰写你的网页。