我正在尝试使用PHP设置我的网站,但我是初学者。
我已经知道如何通过点击导航链接来包含maincontents(只是单独的.php文件中的内容)。
但是如果包含的内容有一个subnavi并且我也想使用这个navi将内容包含在那个内容中呢?
包含在包含工作中吗?
如何告知所包含内容中的链接,他应首先加载索引,然后自己,然后从subnavi中选择内容?
或者有更好的方法来构建我的代码吗?
这是 index.php 的代码:
<?php
if ($_GET['page'] == 'first' ){
include 'first.php';
}else if ($_GET['page'] == 'second' ){
include 'second.php';
}else if ($_GET['page'] == 'third' ){
include 'third.php';
}else if ($_GET['page'] == 'fourth' ){
include 'fourth.php';
}else include 'drawing.php';
?>
我用以下链接调用链接:
href="index.php?page=first"
我现在可以为子媒体使用相同的内容吗?但是要补充说它有效吗?
编辑:我再次提前解决问题,因为现在我觉得PHP无法做到我想要实现的目标。
让我再次解释一下我的想法:
我的index.php是独立编码(页眉和页脚),它有一个include部分,我想加载内容。该链接已经提供并且有效。我正在加载的内容不是独立编码的。它只包含一个包含所有内容的div,仅此而已。我认为这就是包含的原因。
好的,但是现在index.php中加载的内容还有一些指向其他包含的链接。这是一个subnavi。因此,我还希望将内容包含在刚刚加载的内容中,这也不是独立内容(没有页眉或页脚)。
我可以想象的问题是,加载到index.php中的内容当然不知道它是一个加载的内容。所以出于这个原因,当它本身应该加载另一个内容时,它无法自己重建,因为现在它的“创建页面”确实存在。对?
为了确切我的问题:是否有一种链接用于加载内容的subnavi href =“loadindexthenloadmeinindexthenloadtheincludedcontentIhavejustaskedfor”
如果没有,我很乐意学习如何。
如果这种方式只是非正统,那么请告诉我。
感谢您的关注。
答案 0 :(得分:9)
是的,您可以加入包含。
将include视为将包含文件的内容复制并粘贴到include "blah.php"
所在的位置。
构建这个的“更好的方法”是拥有一个“主”视图,包括应该彼此独立的其他部分和部分。
您应该注意包含哪些文件,因为您最终可能会多次包含一些文件。如果include定义了一个函数,这会导致脚本崩溃,这可能是一个问题。在这种情况下,您可以使用include_once
。
有了这样说......包含在一个包含内?
(抱歉无法抗拒)
答案 1 :(得分:2)
首先:
$routes = array(
'first' => 'first.php',
'second' => 'second.php',
'third' => 'third.php',
'fourth' => 'fourth.php',
'fallback' => 'drawing.php'
);
$page = $_GET['page'];
if ( !array_key_exists( $page , $routes ))
{
$page = 'fallback';
}
include $routes[$page];
是的,你可以包括内部包含。
您也可以使用它们执行许多其他操作,例如创建simple templating engine。或者将include中的数据传递给变量:
让我们说你有行:
$config = include 'conf.php';
和`conf.php'包含:
<?php
return array(
'foo' => 'lorem ipsum sit dolor amet',
'bar' => 'cogito ergo sum'
);
?>
然后它将在$config
内传递此数组..但很少使用此技巧。并不总是最好的方式,应用理由。
答案 2 :(得分:0)
当然可以。它被称为recrusive,包括