我的webroot外面有一个php文件,我想在其中包含一个webroot内的文件。
webroot外的文件夹
- >我想要包含的php文件 Webroot公司
- >要包含的文件
所以我必须上一个目录,但这不起作用:
include('../webroot/file-to-include.php');
包含完整路径也不起作用:
include('home/xx/xx/domains/mydomain/webroot/file-to-include.php');
我该如何做到这一点?
答案 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
,
然后我使用了以下PHP命令:
$DbInfoFile = "../conn.txt";
答案 4 :(得分:-6)
这应该有效
$_SERVER['DOCUMENT_ROOT']/home/xx/xx/domains/mydomain/webroot/file-to-include.php
并确保您可以访问该级别。