2013-07-09 19 views
1

我的PHP线tommyburn.co.uk/westancroft/index.php:PHP包括使用服务器的用户名,而不是域名

$cwd = $_SERVER['HTTP_HOST']; 
    echo $cwd; 
    $path = $cwd."/westancroft/Pages/Main/Main.php"; 
    include_once($path); 

将返回:

tommyburn.co.uk 警告:include_once(tommyburn.co.uk/westancroft/Pages/Main/Main.php)[function.include-once]:未能打开流:在/ home/tommybu1/public_html/westancroft/index中没有这样的文件或目录。 php on line 6

为什么它试图在用户名处找到它,而不是在域名? 我该如何解决这个问题? 非常感谢 Tommy

回答

1

include_once需要系统文件路径,而不是你所拥有的网址。

如果你想在当前工作目录,使用getcwd

如果你需要一个绝对URL,使用dirname(__FILE__)让你在哪里此刻的文件,并从那里你的工作方式。

+0

我想使用绝对URL,但不是从我的位置开始,因为包含的文件位于另一个包含文件中,所以当前位置不同。 – Tommy

+1

@Tommy研究并使用'dirname(__ FILE __)',该URL永远不会改变! –

+0

好的,但第6行中的/home/tommybu1/public_html/westancroft/index.php中没有这样的文件或目录意味着它正在当前目录中查找它,而不是从根目录中查找它。 – Tommy

0

$cwd大概应该是__DIR__dirname(__FILE__)

$_SERVER['HTTP_HOST']是从当前请求的主机,即:域...这是你的情况无效。

+0

虽然我想使用该域名。因为我得到的绝对路径 – Tommy

+0

你需要绝对'SYSTEM'路径,而不是'HTTP'路径... –

0

以下是否有效?

$cwd = $_SERVER['DOCUMENT_ROOT']; 
+0

这并不能提供问题的答案。要批评或要求作者澄清,在他们的帖子下留下评论 - 你总是可以评论你自己的帖子,一旦你有足够的[声誉](http://stackoverflow.com/help/whats-reputation),你会能够[评论任何帖子](http://stackoverflow.com/help/privileges/comment)。 – skuntsel

+0

@skuntsel - 我同意这可能是一个评论,但你需要代表评论和新用户不能评论其他的帖子。请参阅http://stackoverflow.com/help/privileges – McNab

相关问题