PHP - 解析 ini 文件并访问单个值
PHP - Parse ini file and access single values
在 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 中执行相同的操作?不幸的是,我找不到任何示例。
不用担心,解析 .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 设置 glom 到同一个对象中。如果您希望像 python 示例中那样将事物分段,请为 process_sections
参数(第二个参数)传递 true
。
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
从中间方法来看,要获得匹配部分,需要逐行读取任何 INI 文件,在这种情况下,您可以使用 fgets 函数或 stream_get_line 函数读取每一行,直到该部分成立或文件结尾(未成立)。
在每一行中,我们可以使用 preg_match(使用正则表达式模式)与实际搜索的部分名称相匹配。
这种方法的本质是减少内存占用,同时有很多并发请求同时发生,所以在这种情况下我们使用任意长度的字符串对象作为缓冲区。
祝你好运,伙计。
在 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 中执行相同的操作?不幸的是,我找不到任何示例。
不用担心,解析 .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 设置 glom 到同一个对象中。如果您希望像 python 示例中那样将事物分段,请为 process_sections
参数(第二个参数)传递 true
。
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
从中间方法来看,要获得匹配部分,需要逐行读取任何 INI 文件,在这种情况下,您可以使用 fgets 函数或 stream_get_line 函数读取每一行,直到该部分成立或文件结尾(未成立)。
在每一行中,我们可以使用 preg_match(使用正则表达式模式)与实际搜索的部分名称相匹配。
这种方法的本质是减少内存占用,同时有很多并发请求同时发生,所以在这种情况下我们使用任意长度的字符串对象作为缓冲区。
祝你好运,伙计。