在Python中,你可以解析一个.ini
文件并访问单个值,如下所示:
米尼.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)。
使用您的文件作为此示例的基础:
米尼.ini
[STRINGS]
mystring = fooooo
value = foo_bar
测试.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 示例中那样按部分范围限定内容,请为 process_sections
参数(第二个参数)传递true
。
测试2.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(使用正则表达式模式)。
这种方法的本质是减少内存使用,同时发生许多并发请求,因此在这种情况下,我们使用任何足够长度的字符串对象作为缓冲区。
祝你好运,伙计。
将单个值从 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 中不存在该选项,则为 FALSE.ini但这不符合我的经验。如果该值在 php 中设置为"On",则从内存中返回.ini ini_get将返回"1"。这将导致人们期望设置为"Off"的值将返回"0",但它通常会为我返回一个空白字符串。此外,不存在的选项名称通常返回一个空白字符串。我不记得处理过NULL,所以你的里程可能会有所不同。基本上,您需要了解并准备好处理系统在特殊情况下返回的内容。
ini_get应该在所有版本的 PHP>= 4 中可用。