2016-09-06 109 views
0

好吧,我有一个情况,我有不同目录中的几个文件,需要弄清楚如何将它们连接在一起。下面是结构:包含来自其他文件的配置和数据库

  • /home/username/public_html/index.php
  • /home/username/public_html/secure/index.php
  • /家/用户名/的public_html /元件/具备/ db.php中
  • /home/username/config.ini

好了,在我的两个文件的index.php我有这个包括引用db.php中:

的index.php

<?php include("elements/includes/db.php"); ?> 

安全/ index.php文件

<?php include("../elements/includes/db.php"); ?> 

现在db.php文件里面,我有以下引用的config.ini:

$config = parse_ini_file('../../../config.ini'); 

我知道它没有选择,因为它应该是相对于index.php而不是db.php,但我将如何引用这些文件correctl ÿ?我想我的config.ini在public_html目录之外。

回答

0

使用$_SERVER['DOCUMENT_ROOT'],这样你就不会需要弄清楚每个文件的相对路径:

$config = parse_ini_file($_SERVER['DOCUMENT_ROOT'].'/../config.ini'); 
+0

ahhh,我不知道你可以从文档根目录调用返回...我认为这是使用时的最终位置...谢谢!我会试一试。 –

+0

警告:parse_ini_file(/ home/username/public_html ./../ config.ini):无法打开流<---无法让它引用一个目录......尝试了几个变体:($ _SERVER [ 'DOCUMENT_ROOT']'../config.ini') –

+0

奇怪的是它在'public_html'后面加了额外的时间段 – aynber

0

另一种方法是使用例如魔术常量__DIR__,参见Predefinied Constants

. 
├── config.ini 
└── public_html 
    ├── elements 
    │   └── includes 
    │    └── db.php 
    ├── index.php 
    └── secure 
     └── index.php 

的public_html /元件/具备/ db.php中

<?php 

$config = parse_ini_file(
    __DIR__ . '/../../../config.ini' 
); 

的public_html/index.php的

<?php 

include __DIR__ . '/elements/includes/db.php'; 

的public_html /安全/ index.php的

<?php 

include __DIR__ . '/../elements/includes/db.php'; 

注意:我建议使用require而不是include,请参见require