php包含的文件的相对vs绝对路径

时间:2014-09-02 01:06:27

标签: php file include hierarchy php-include

所以我设置了这种文件。 /cloud//embed/是两个不同的子域。

www
  -cloud
   --config.php
   --files
     ---formSubmit.php
  -embed
    --index.php
/embed/index.php 中的

我有以下代码:

include("/www/cloud/files/formSubmit.php");

/cloud/files/formSubmit.php 中我有以下代码:

include("../config.php");

如果我在cloud.website.com上,并且我转到 formSubmit.php ,一切正常,包含配置文件。

但是,如果我在embed.website.com上并且转到 index.php ,则会收到错误消息,指出找不到config.php。

有没有人知道我需要做什么才能从任一位置包含我的formSubmit.php并包含我的config.php?

1 个答案:

答案 0 :(得分:1)

在这种情况下,似乎您使用相对路径是有效的,而绝对路径则不然。这是否意味着/www/cloud/files/的绝对路径不正确,我不知道。在我的代码中,我倾向于尝试相对尽可能地引用文件,如下所示:

// In embed/index.php
include_once dirname(dirname(__FILE__)) . '/cloud/files/formSubmit.php';

这样做是获取当前正在执行的文件的目录,然后获取它的父目录,即www,然后沿着路径返回到我需要的文件。< / p>

在访问文件服务器端时,子域名不应该有所区别(只要文件托管在相同的服务器上)。