繁体   English   中英

在多个目录中包含文件-PHP

[英]Including a file in multiple directories - PHP

我试图按顺序获取我的include()函数,但是每次在一个目录中切换语法时,它都会弄乱其子目录,反之亦然。

我的“ localhost / FTS / includes / header.php”文件夹中有一个名为“ header.php”的文件。 “ FTS”文件夹具有我的index.php文件,因此从技术上讲,它是我测试时的根文件夹。

在文件“ localhost / FTS / admin.php”中,我使用include 'includes/header.php'; 它可以正常工作,但是当我进入文件“ localhost / FTS / admin / members.php”时,找不到包含文件。 同样在我的“ header.php”文件中,我在根目录中还包含了另外两个文件。

我只希望所有包含项都可以在每个目录中工作。 有任何想法吗?

include语句包含与执行include的脚本相关的文件,这就是为什么您看到此问题的原因。 您有几种选择可用:

  • 您可以在include路径$_SERVER['DOCUMENT_ROOT']加上$_SERVER['DOCUMENT_ROOT'] ,如果您使用的是Apache,它将引用您的文档根目录。 所以类似include( $_SERVER['DOCUMENT_ROOT'] . "/includes/header.php" ); 将在脚本中显示为绝对路径,因此,如果从结构中的各个位置调用它,它将可以正常工作,但仍可移植(请注意,它需要从Web服务器调用,如果您正在使用,则无法使用)您的脚本(通过CLI)。
  • 您可以在目录结构的根目录中创建某种占位符,然后逐步进行处理,直到找到它为止,然后将其视为根目录,并相对于此创建include语句。 这将更加可移植,并且可以在CLI模式下工作,但是会占用更多资源。
  • 您可以根据脚本的位置使用不同的include语句,包括包含文件的位置,例如include( "includes/header.php" ); 如果您要包含的文件位于您当前所在目录的includes目录中,或include( "../includes/header.php" ); 如果includes目录位于正在运行的脚本的父目录中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM