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

tvz2xvvm  于 2023-06-04  发布在  Python
关注(0)|答案(3)|浏览(112)

在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中做同样的事情?不幸的是,我找不到任何例子。

8wtpewkr

8wtpewkr1#

不用担心,解析.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设置gloms到同一个对象中。如果您希望像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
2sbarzqh

2sbarzqh2#

从中间的方法,以获得匹配的部分,它需要读取任何INI文件从行到行,在这种情况下,你可以使用fgets函数或stream_get_line函数读取每一行,直到部分找到或文件结束(未找到)。
在每一行中,我们可以使用preg_match(使用正则表达式模式)来匹配实际搜索的部分名称。
这种方法的本质是减少内存的使用,同时有许多并发请求发生,所以在这种情况下,我们使用任何足够长的字符串对象作为缓冲区。
祝你好运巴迪。

um6iljoc

um6iljoc3#

从php.ini中读取单个值到变量中的最简单方法是使用ini_get()函数,如下所示:

$php_ini_option_name = 'error_reporting';
$php_ini_option_value = ini_get($php_ini_option_name);
echo "PHP.ini option '" . $php_ini_option_name . "' = " . $php_ini_option_value;

这将在成功时返回配置选项的字符串值。根据文档,它将为NULL值打印一个空字符串,或者如果php.ini中不存在该选项,则打印FALSE,但这与我的经验不符。如果在php.ini中将值设置为'On',则从内存中获取ini_get将返回'1'。这将导致人们期望设置为'Off'的值将返回'0',但它通常会为我返回一个空字符串。此外,不存在的选项名通常返回一个空字符串。我不记得处理空,所以你的里程可能会有所不同。基本上,您需要了解并准备好处理系统在特殊情况下返回的内容。
ini_get应该在PHP >= 4的所有版本中都可用。

相关问题