我目前在每个页面都使用include 'header.php'
和include 'footer.php'
,据我所知,大多数人都是这样做的。我想到了一种我个人认为会更好的方式。我想到制作index.php,然后在索引中包含页面。这样既可以消除对页脚的需求,又可以在每页中消除include
两次的需要。我是php的新手,所以我不知道怎么做。我尝试使用POST
和GET
方法,但它似乎不起作用。我想要实现的是使用诸如http://mysite.com/index.php?page=history之类的URL在页眉中包含页面,然后加载history.php。如果我需要澄清一些事情,请问。对不起,如果我马上不接受答案,我真的很困倦。我会尽可能的。
答案 0 :(得分:1)
如果在文件中包含2个页面,例如header.php和footer.php,则不会出现问题... 只需在每页中写两行代码就不是问题。
您可以使用if语句决定要在每个页面中动态包含哪些页面,而不是在网址中传递页面名称。
答案 1 :(得分:1)
如果您通过index.php进行,您无疑会做错 没什么不好的 - 每个新手都是这样做的 仅仅因为您正在考虑包含,而您应该考虑模板。
你可以通过index.php制作,没问题。但是这个索引中不应该只有一个HTML标签!以及在实际页面中。
无论您是在单独的页面中还是通过index.php执行此操作,该方案都应该是相同的:
因此,您的常规页面看起来像
code
code
code
include 'template.php';
而index.php看起来像
get page name
sanitize page name
include page
include 'template.php';
现在您可以决定选择什么
答案 2 :(得分:0)
首先,我同意Meager ...看看soem框架。大多数人会使用两步观点,这种观点基本上以更复杂和灵活的方式进行。
据说它看起来像这样:
<?php
$page = isset($_GET['page']) ? $_GET['page'] : 'home'; // default to home if no page
if(file_exists($page.'.php')) {
// buffer the output so we can redirect with header() if necessary
ob_start();
include($page.'.php');
$content = ob_get_clean();
}
else
{
// do something for error 404
}
?>
<html>
<head></head>
<body>
<?php echo $content; ?>
</body>
</html>
你可能会变得更复杂。你要做的一件事是确保你不要盲目地认为$_GET
var中的页面是安全的......确保你的服务器上存在该文件或以其他方式消毒它......