如何在主域的子域中包含php文件

时间:2014-04-22 04:25:36

标签: php include subdomain

我的服务器中有两个文件夹:

--MainDomain
  -header.php
  -index.php
  -footer.php
--Subdomain
  -index.php

现在,我想在header.php中的主域中添加index.php,这位于子域中。

使用include函数我收到错误

  

无法打开流:/ home / content / xx / xxx / xxxx / xxx /

中没有此类文件或目录

我知道当给定的路径上不存在文件时会发生此错误,但是如何将主域中的文件包含到子域? 提前谢谢你

2 个答案:

答案 0 :(得分:7)

我知道这个问题是在八个月前被问到的,但我刚刚遇到了同样的问题并解决了它。希望这将有助于未来的人们偶然发现同样的事情。

  • 例如,假设您有两个子域名:carrot.cake.com和chocolate.cake.com
  • 胡萝卜子域名中有一个文件:carrot.cake.com/scripts/login.php
  • 巧克力子域名中有一个文件:chocolate.cake.com/index.php
  • 您希望在“index.php”文件中包含“login.php”文件。

重要的是,这是可能的,但只有在将这两个域的文件存储在一个服务器文件系统上时才有可能。

将以下代码添加到index.php文件中:

    <?php 
echo '<br>'.$_SERVER['DOCUMENT_ROOT'].'<br>';
    ?>

然后在浏览器中加载index.php文件。它将显示您的实际目录文件夹是什么。例如,当我这样做时,它向我显示我的文件系统看起来像:

/home3/cake/public_html/chocolate_domain

你的将与MINE不同,所以请亲自测试一下php代码片段。然后立即删除该代码。它仅用于测试目的。但现在您知道如何实际访问所有域的所有文件夹。这意味着您的index.php文件位于,例如

/home3/cake/public_html/chocolate_domain/index.php

并且您的login.php文件位于,例如

/home3/cake/public_html/carrot_domain/scripts/login.php

现在,为了最终结果!如果要在“index.php”中包含“login.php”,则应将以下代码放入“index.php”文件中:

    <?php 
include("/home3/cake/public_html/carrot_domain/scripts/login.php"); 
    ?>

请再次记住,你的实际路径是不同的,所以使用文档根的回声测试它,就像我之前说的那样〜

祝你好运〜

答案 1 :(得分:0)

这是一种整齐的方法。

来自子域的包含:

include( $_SERVER['DOCUMENT_ROOT'] . "/../exampledomain.com/filetoinclude.php" ); 

这将获取文件的完整路径,然后无论您位于哪个子域中,它都将跳到该文件上方的文件夹并调用“ exampledomain.com”域。这样可以向显示该文件的任何人显示您的文件夹层次结构。

您也可以将其反转 包含到子域:

include( $_SERVER['DOCUMENT_ROOT'] . "/../sub.exampledomain.com/filetoinclude.php" );