我正在尝试按顺序获取我的include()函数,但每次我在一个目录中切换语法时都会弄乱其子目录,反之亦然。
我有一个名为' header.php'在我的本地主机/ FTS / includes / header.php'夹。 ' FTS'文件夹有我的index.php文件,因此在我测试时它在技术上是我的根文件夹。
在文件' localhost / FTS / admin.php'我使用行include 'includes/header.php';
并且它工作正常但是当我进入文件' localhost / FTS / admin / members.php'找不到包含文件。也在我的' header.php'内。文件我从根目录中包含了几个文件。
我只想让我的所有包含都在每个目录中工作。有任何想法吗?
答案 0 :(得分:0)
include
语句包含与执行include
的脚本相关的文件,这就是您查看此问题的原因。您有几种选择:
$_SERVER['DOCUMENT_ROOT']
之类的内容添加包含路径,如果您使用的是Apache,则会引用您的文档根目录。因此include( $_SERVER['DOCUMENT_ROOT'] . "/includes/header.php" );
之类的东西会在脚本中显示为绝对路径,因此如果从结构中的各个位置调用它,它仍然可以工作,但仍然是可移植的(注意它需要从Web服务器调用,这赢得了如果你通过CLI使用你的脚本,那就很有效。include( "includes/header.php" );
,如果您包含的文件位于includes
目录中您目前所在的目录,如果include( "../includes/header.php" );
目录位于正在运行的脚本的父目录中,则为includes
。