相对于一个文件的绝对路径的PHP包括
问题描述:
所以我有这种文件设置。 /cloud/
和/embed/
是两个不同的子域。相对于一个文件的绝对路径的PHP包括
www
-cloud
--config.php
--files
---formSubmit.php
-embed
--index.php
在
/embed/index.php
我有以下代码:
include("/www/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
,和然后从那里返回到我需要的文件的路径。
访问文件服务器端时子域名应该没有区别(只要该文件托管在相同的服务器上)。
谢谢,我想我明白你在说什么。所以'../'的作用与'dirname()'不同,因为一个是绝对的,一个是工作路径? – bryan 2014-09-02 01:14:58
不可以。“../ config.php”作为**相对路径被访问。 '/ www/cloud/files/formSubmit.php'被作为**绝对**路径访问。你提到第一个是工作,第二个不是。这个绝对路径可能是不正确的,因为它通常是'/ var/www/...',但无论如何,您都可以使用相对路径来访问文件,而不是像上面指出的那样。 – 2014-09-02 01:18:54
适合我,谢谢花时间解释。 – bryan 2014-09-02 01:19:48