如何更改PHP包括单击其他链接

时间:2016-01-14 16:37:49

标签: php html

刚开始学习PHP,开始使用包含,这样我就不必在不同的页面上使用相同的HTML代码并复制过去。

目前我正在使用:

include("pages/header.php")

这是将我的所有html用于我的菜单并将其放入我的index.php页面。现在,我想更进一步,将我的内容放入自己的文件,如home.phpcontact.php,然后使用include将html拉入我的index.php这些页面已在菜单中点击。

有没有具体方法可以做到这一点?我可能需要一些if语句来检查它需要包含和更改的内容,只是不确定如何去做。任何建议都会很棒!

2 个答案:

答案 0 :(得分:1)

我同意@Tim,但会对页面的处理方式略有不同。

<a href="index.php?page=about">About</a>


<?php

$allowed = array('about', 'header', 'index'); // add the pagenames you need
$page = ( isset($_GET['page']) ) ? $_GET['page'] : 'index';
if ( in_array($allowed, $page) )
    include("pages/$page.php")
} else {
    include("pages/404.php")
}
?>

每当您创建新页面时,您只需将其添加到阵列即可使其正常工作。您不必创建另一个if / else。

更多地澄清代码。 您的链接将为page提供值。 在$allowed中存储有效的页面名称。数字令人困惑,请使用名称。

然后通过检查$page值来设置$_GET['page']变量的值。 如果已设置值(这意味着单击了链接),则将使用该值。如果没有值,则会将$page设置为索引。

最后if-statement检查$allowed中是否存在给定值。如果是,它将包括该页面,如果不是,它将包括404。

这种方法的一个好处是,当您需要添加更多页面时,它很容易维护/调整。

答案 1 :(得分:0)

对于指向其他页面的链接,您需要向其添加变量作为对要包含的内容的引用。例如:

<a href="index.php?page=2">About</a>

然后在您希望包含文件的PHP中,您必须检索变量并显示要包含的相应文件。以下是如何运作的:

<?php
$PageNum = $_GET['page'];
if ($PageNum == 1) {
    include("pages/header.php")
} else if ($PageNum == 2) {
    include("pages/about.php")
} else {
    include("pages/404.php")
}
?>

这将检索我们在链接中设置的变量,并包含相应的页面。

您可能希望显示索引页面而不设置任何变量。例如,您可以拥有&#39;联系人&#39;使用page = 1和&#39;关于&#39;页面= 2。当您处理$ PageNum时,只需执行

if ($PageNum ==1) {
    include("pages/contact.php") 
} else if ($PageNum ==2) {
    include("pages/about.php") 
} else { 
    include("pages/header.php")
}

这种方式当没有设置变量时(如果它们只是转到index.php)它将向它们显示header.php文件,否则它将显示它们或联系。