【问题标题】:PHP parse_ini_file work on URL?PHP parse_ini_file 在 URL 上工作?
【发布时间】:2014-02-24 18:40:43
【问题描述】:

PHP 方法 parse_ini_file 是否适用于托管在云中的 INI 文件?现在,我有一个配置文件,它位于我的每一个应用服务器中,在任何给定时间可能是 4-8 的任何地方。手动对每个服务器进行配置更改是非常痛苦的。

我尝试了以下方法,但无济于事:

$handle = fopen('https://blah.com/config.ini', 'r');
$ini = parse_ini_file($handle, true);

但我收到此错误:

Warning: parse_ini_file() expects parameter 1 to be a valid path, resource given

这甚至可能吗?有什么想法吗?

【问题讨论】:

    标签: php ini


    【解决方案1】:

    fopen() 不是那样使用的。试试file_get_contents()

    $content = file_get_contents('https://blah.com/config.ini');
    $ini = parse_ini_string($content, true);
    

    这可能会起作用(未经测试):

    $ini = parse_ini_file('https://blah.com/config.ini', true);
    

    在任何一种情况下,allow_url_fopen 都需要在 php.ini 中启用。

    【讨论】:

    • 这仍然行不通,因为parse_ini_file() 需要一个文件路径。请改用parse_ini_string()
    【解决方案2】:

    fopen 返回指向文件的指针,parse_ini_file 接受文件路径并自行打开文件。

    您应该尝试使用 file_get_contents() 从文件中获取数据,然后将其传递给 parse_ini_string() 函数,该函数与 parse_ini_file() 相同,但它采用字符串中的 ini 文件。

    【讨论】:

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