我正在尝试编写一个文件列表并将它们放入一个数组中。 必须更改调用外部内容的页面上的内容。
我找到了这段代码,并试图让它发挥作用。 LINK (最后评论)
$all_pages=array("main","page_two","page_three");
$page = $_GET['page'];
if( isset($page) and array_key_exists("$page", $all_pages) ) // added a missing ')'
{
include('subfolder/folder/'.$_GET['$page'].'.html');
}
好吧,这行不通。 只是无法找到正确的文件。 (内容始终显示为空)。
我(尝试)像这样调用文件:
<ul>
<li><a href="template.php?main">Main content</a></li>
<li><a href="template.php?page_two">Second content</a></li>
<li><a href="template.php?page_three">Third content</a></li>
</ul>
提前致谢!
最佳答案
您必须使用 in_array()
来测试允许的值。 array_key_exists
要求页面名称是数组键。
其次,$_GET["page"]
将为空,因为您没有该名称的 get 参数。您必须调整您的链接:
<li><a href="template.php?page=main">Main content</a></li>
<li><a href="template.php?page=page_two">Second content</a></li>
<li><a href="template.php?page=page_three">Third content</a></li>
(或者使用 $_SERVER["QUERY_STRING"]
。但是您可能不想这样做。)
你的第三个问题是使用:
include('subfolder/folder/'.$_GET['$page'].'.html');
^^^ ^^^
你应该在这里只使用 $page
变量,你已经从 $_GET
中读取了它。再次使用该名称作为键将不起作用。而且你还在单引号中使用了它(双重错误,但幸运的是没有效果)。
正确的是:
$all_pages = array("main", "page_two", "page_three");
$page = $_GET['page'];
if ( in_array($page, $all_pages) )
{
include('subfolder/folder/'.$page.'.html');
}
关于php - 名称数组 = 获取正确的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7883005/