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


How to change PHP include when a different link is clicked

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

目前我正在使用:

include("pages/header.php")

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

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

我同意@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($page, $allowed) )
    include("pages/$page.php");
} else {
    include("pages/404.php");
}
?>

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

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

然后通过检查$_GET['page']值来设置$page变量的值。如果设置了一个值(这意味着单击了链接),它将使用该值。如果不存在任何值,它将$page设置为索引。

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

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

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

<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")
}
?>

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

您可能希望索引页在没有任何变量集的情况下显示。例如,您可以使用页面=1的"联系人"和页面=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文件,否则它将向他们显示有关或联系人的信息。