包含其他文件中的配置和数据库

时间:2016-09-06 16:44:24

标签: php mysql

好的,我有一种情况,我在不同的目录中有几个文件,需要弄清楚如何将它们连接在一起。结构如下:

  • /home/username/public_html/index.php
  • /home/username/public_html/secure/index.php
  • /home/username/public_html/elements/includes/db.php
  • /home/username/config.ini

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

的index.php

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

secure / index.php

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

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

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

我知道它没有提升,因为它应该是相对于index.php而不是db.php,但我如何正确引用这些文件?我希望我的config.ini在public_html目录之外。

2 个答案:

答案 0 :(得分:1)

另一种方法是使用魔术常数,例如__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

答案 1 :(得分:0)

使用$_SERVER['DOCUMENT_ROOT'],这样您就不需要计算每个文件的相对路径:

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