【问题标题】:Alternate to parse_ini_file php替代 parse_ini_file php
【发布时间】:2017-05-10 11:38:18
【问题描述】:

解析配置文件以给出 php 中的绝对路径的替代方法是什么。

ie) 我正在读取 db 配置文件,例如:

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

我需要给出上面的绝对路径,比如:

$_SERVER['DOCUMENT_ROOT'].'/<my_path>/config.ini';

我需要避免在路径中使用“../../”

如果我使用:

$config = $_SERVER['DOCUMENT_ROOT'].' /my_path/my_path/config.ini';

我明白了

非法字符串偏移 'username'

【问题讨论】:

  • 那不行吗?您实际上并没有说明使用绝对路径的原因是什么
  • 这不是$_SERVER['DOCUMENT_ROOT'] 帮助解决您的问题吗?
  • 您可以创建一个定义文件并在其中声明一个全局简写define('BASE_PATH', '/path/to/www/root');
  • 已更新问题
  • 这个错误怎么可能? Illegal string offset 'username'?

标签: php


【解决方案1】:

在项目的根文件夹中维护config.php,您可以在其中添加此类数据。这就是包括 WordPress 在内的许多 PHP 项目所遵循的。

例如来自 WordPress

define('ABSPATH', dirname(__FILE__) . '/');

他们在wp-config.php 中定义了ABSPATH,它拥有应用程序的绝对路径。因此,您可以在应用程序中任意引用它们,

在您的情况下,可能如下所示。

parse_ini_file(ABSPATH. 'config.ini');  

【讨论】:

  • 我实际上将 config.php 保存在我的根文件夹中,感觉我需要将它保存在项目特定文件夹中
  • 项目特定文件夹是什么意思?
  • 意思是我的主文件和配置文件在不同的位置,虽然我想把我的 config.php 放在一个单独的文件夹中
  • ok 使用 getcwd() 实现,我将 config.php 移到同一个文件夹中
  • config.ini 在您的项目文件夹中吗?还是在它之外?如果它在里面,则无需使用getcwd(),因为如果您提到了像ABSPATH 这样的常量,那么您的项目路径已经在config.php 中,这是一个很好的做法
【解决方案2】:

好的,我在下面使用它:

$path = getcwd().'/mypath/config.ini'; 
$config  = parse_ini_file($path);  

【讨论】:

    猜你喜欢
    • 2013-05-10
    • 2011-08-09
    • 2012-06-17
    • 2015-05-06
    • 2012-12-11
    • 2010-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多