PHP目录结构和访问

时间:2014-10-09 17:04:12

标签: php

我整个上午一直在阅读和测试,但我仍然试图绕过这个,因为在webroot之外移动物品。毋庸置疑,事情仍然存在。

所有内容都位于var /

我的场景/问题:两个index.php文件都需要slide.php(位于var / libs / inc中),因为其中一个索引页面是另一个级别。我一直在使用以下内容:

var / www / html / index.php - require_once(' ../../ libs / inc / slide.php');

var / www / html / acc / index.php - require_once(' ../../../ libs / inc / slide.php');

然而,slide.php还利用了connection.php,它是从slide.php升级两级,然后回到另一个名为" connect"的目录。我一直在使用下面的一个适用于上述index.php文件之一。

var / libs / inc / slide.php - require_once(' ../../ connect / connection.php');

VAR /连接/ connection.php

问题出在html目录的" acc"的子目录中。并且它的页面可以访问上面给出的slide.php但是无法获取connection.php

我如何才能实现这一目标? 目前的结构:

var / www / html / index.php - require_once(' ../../ libs / inc / slide.php');

var / www / html / acc / index.php - require_once(' ../../../ libs / inc / slide.php');

var / libs / inc / slide.php - require_once(' ../../ connect / connection.php');

VAR /连接/ connection.php

1 个答案:

答案 0 :(得分:0)

有三种常见做法。

  1. 您只需为每个包含指定绝对路径/var/libs/,以便它指向文件,无论您在何处包含这些文件。例如:/var/libs/inc/slide.php
  2. 您可以将lib路径添加到php包含使用set_include_path时将查找文件的位置列表中。这样您就可以指定inc/slide.php来包含文件。
  3. 您使用绝对路径,但在常量中定义第一部分,如define('LIB_PATH', 'var/libs/')。将它放在一个包含在任何地方的配置文件中,然后在包含如下内容时使用它:include(LIB_PATH.'inc/slide.php')
  4. 1号可能是最快但有点脏。如果您只是原型设计并且需要快速完成测试,那就太好了。 2号工作,但我个人不喜欢它(我个人不喜欢在运行时更改配置变量,但那就是我)。 3号是大多数图书馆中最常见的。此外,全局范围中定义的常量在所有范围内都可用,因此它们可以在函数和类中使用,而不必像变量一样调用global