PHP - 解析ini文件并访问单个值

时间:2016-01-15 15:08:17

标签: php python ini

在Python中,您可以解析.ini文件并访问单个值,如下所示:

myini.ini

[STRINGS]
mystring = fooooo
value = foo_bar

script.py

import configparser
config = configparser.ConfigParser()
# ----------------------------------------------------------------------

config.read("myini.ini")

test = config["STRINGS"]["mystring"]
print (test)      #-> OUTPUT: fooooo

我如何在PHP中执行相同的操作?不幸的是,我找不到任何例子。

2 个答案:

答案 0 :(得分:6)

不用担心,解析.ini文件是一种标准方法。 (参见php文档中的parse_ini_file)。

使用您的文件作为此示例的基础:

<强> myini.ini

[STRINGS]
mystring = fooooo
value = foo_bar

<强> test.php的

$ini_array = parse_ini_file("myini.ini");
print_r($ini_array); # prints the entire parsed .ini file

print($ini_array['mystring']); #prints "fooooo"

请注意,默认情况下parse_ini_file会忽略各个部分并将所有ini设置突出显示到同一个对象中。如果您希望在python示例中按部分划分范围,请为true参数(第二个参数)传递process_sections

<强> test2.php

$ini_array = parse_ini_file("myini.ini", true /* will scope sectionally */);

print($ini_array['mystring']); #prints nothing
print($ini_array['STRINGS']['mystring']); #prints fooooo

答案 1 :(得分:0)

从中间方法开始,要获取匹配部分,它需要从一行到一行读取任何INI文件,在这种情况下,您可以使用fgets函数或stream_get_line函数读取每一行,直到该部分建立或文件结尾为止(没建立)。

在每一行中,我们都可以使用preg_match(使用正则表达式模式)来匹配搜索到的实际部分名称。

此方法的本质是减少内存使用量,同时许多并发请求会同时发生,因此在这种情况下,我们使用具有足够长度的字符串对象作为缓冲区。

祝你好运。