相对于一个文件的绝对路径的PHP包括

问题描述:

所以我有这种文件设置。 /cloud//embed/是两个不同的子域。相对于一个文件的绝对路径的PHP包括

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.webs上ite.com和我去formSubmit.php,一切工作正常,包括配置文件。

但是,如果我在embed.website.com上,并且我去index.php,我得到一个错误,说没找到config.php。

有谁知道我需要做什么来包括我的formSubmit.php从任何位置,并有我的config.php包括?

在这种情况下,似乎您的相对路径的使用是正常的,绝对路径不是。这是否意味着/www/cloud/files/的绝对路径是不正确的,我不知道。在我的代码,我倾向于尝试引用文件相对尽可能像这样:

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

什么,做的就是让当前正在执行的文件的目录,然后它的父目录,这将是www,和然后从那里返回到我需要的文件的路径。

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

+0

谢谢,我想我明白你在说什么。所以'../'的作用与'dirname()'不同,因为一个是绝对的,一个是工作路径? – bryan 2014-09-02 01:14:58

+1

不可以。“../ config.php”作为**相对路径被访问。 '/ www/cloud/files/formSubmit.php'被作为**绝对**路径访问。你提到第一个是工作,第二个不是。这个绝对路径可能是不正确的,因为它通常是'/ var/www/...',但无论如何,您都可以使用相对路径来访问文件,而不是像上面指出的那样。 – 2014-09-02 01:18:54

+0

适合我,谢谢花时间解释。 – bryan 2014-09-02 01:19:48