PHP包含来自webroot外部文件的webroot文件

时间:2012-11-25 11:10:25

标签: php include

我的webroot外面有一个php文件,我想在其中包含一个webroot内的文件。

  webroot外的

文件夹
    - >我想要包含的php文件   Webroot公司
    - >要包含的文件

所以我必须上一个目录,但这不起作用:

include('../webroot/file-to-include.php');

包含完整路径也不起作用:

include('home/xx/xx/domains/mydomain/webroot/file-to-include.php');

我该如何做到这一点?

5 个答案:

答案 0 :(得分:13)

完整路径应为:

include('/home/xx/xx/domains/mydomain/webroot/file-to-include.php');

或者您应该设置路径:

include(__DIR__ . '/../webroot/file-to-include.php');  // php version >= 5.3
include(dirname(__FILE__) . '/../webroot/file-to-include.php');  // php version < 5.3

答案 1 :(得分:0)

尝试将尾部斜杠添加到完整路径,因此它看起来像

include('/home/xx/xx/domains/mydomain/webroot/file-to-include.php');

否则,它将被解释为相对路径。

你也可以尝试change the dir进入webroot,看看是否有效 - 用于调试目的:

chdir("/home/xx/xx/domains/mydomain/webroot");
include "your_file.php";

答案 2 :(得分:0)

将此文件放在一个公共文件中,由webroot以外的所有php源共享:

<?php

  define('PATH_TO_WEBROOT', '/home/xx/xx/domains/mydomain/webroot');

然后使用以下内容包含文件。

<?php
  include (PATH_TO_WEBROOT.'/file-to-include.php');

如果您的webroot的位置发生变化,您只需在代码库中更改一次。

通过设置auto_prepend_file指令,您可以将php配置为automatically prepend给定所有脚本的给定文件。该文件可以包含PATH_TO_WEBROOT常量,或require_once包含它的文件。此设置可以基于每个域或每个主机完成(请参阅ini sections documentation)。

另外,如果您正在广泛使用类,请考虑使用autoload功能。

答案 3 :(得分:0)

我将安全数据放在名为conn.txt

的文件中

Root file image from FileZilla

然后我使用了以下PHP命令:

$DbInfoFile = "../conn.txt";

答案 4 :(得分:-6)

这应该有效

$_SERVER['DOCUMENT_ROOT']/home/xx/xx/domains/mydomain/webroot/file-to-include.php

并确保您可以访问该级别。