在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中执行相同的操作?不幸的是,我找不到任何例子。
答案 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(使用正则表达式模式)来匹配搜索到的实际部分名称。
此方法的本质是减少内存使用量,同时许多并发请求会同时发生,因此在这种情况下,我们使用具有足够长度的字符串对象作为缓冲区。
祝你好运。