• 实战parse_ini_file()及扩展函数解析ini文件完整版


    文章来源:PHP开发学习门户

    地址:http://www.phpthinking.com/archives/587


    在PHP站点开发的过程中,往往会用到读取ini參数配置文件,比方须要訪问一些复杂的借口,就能够直接在參数配置文件中面改动參数,然后再php脚本里面直接读取运行。而php有一个能够直接读取ini配置文件的函数parse_ini_file(),并以数组的形式返回。以下具体解说一下採用PHP内置函数parse_ini_file,读取ini配置文件。

    參数说明:array parse_ini_file ( string $filename [, bool $process_sections ] ) parse_ini_file() 加载一个由 filename 指定的 ini 文件,返回一个联合数组。假设将 process_sections 參数设为 TRUE,将得到一个多维数组,包含了配置文件里每一节的名称和设置。process_sections 的默认值是 FALSE,返回将每一节合并后的数组。ini文件凝视用;符号

    以下開始实例具体解释:

    config.ini(能够设置为其他类型后缀名)例如以下:

    01 ; This is a sample configuration file
    02 ; Comments start with ';'as in php.ini
    03  
    04 [first_section]
    05 one = 1
    06 five = 5
    07 animal = BIRD
    08  
    09 [second_section]
    10 path = "/usr/local/bin"
    11 URL = "http://www.example.com/~username"
    12  
    13 [third_section]
    14 phpversion[] = "5.0"
    15 phpversion[] = "5.1"
    16 phpversion[] = "5.2"
    17 phpversion[] = "5.3"

    PHP脚本測试代码,例如以下:

    1 <?php
    2 $ini_array parse_ini_file("config.ini");
    3 print_r($ini_array);
    4  
    5 // Parse with sections
    6 $ini_array parse_ini_file("config.ini", true);
    7 print_r($ini_array);

    执行结果例如以下:

    01 Array
    02 (
    03 [one] => 1
    04 [five] => 5
    05 [animal] => BIRD
    06 [path] => /usr/local/bin
    07 [URL] => http://www.9streets.cn
    08 )
    09 Array
    10 (
    11 [test] => Array
    12 (
    13 [one] => 1
    14 [five] => 5
    15 [animal] => BIRD
    16 )
    17  
    18 [beta] => Array
    19 (
    20 [path] => /usr/local/bin
    21 [URL] => http://www.9streets.cn
    22 )
    23  
    24 )

    parse_ini_file()函数,无法解析ini文件里的多维数组形式,这就须要自己手动增加以下的parse_ini_file_multi()方法,来解析大于三维数组的ini文件。特别说明的是,在PHP官网的手冊中的parse_ini_file_multi()存在一个错误,我在代码中已经修复。

    只是在笔者程序开发的过程中,遇到了还有一个难题,我须要把parse_ini_file()函数解析后的多维数组的键值对,放到接口的url中调用,这种话,多维数组就出现了问题,即便能够实现效果也会面临很臃肿的遍历过程。
    在这里,笔者採用了第二种方法,将ini配置文件里的多维数组的形式,均转化为一维数组,也就是“=”前面的变量,直接以类型数组样式的字符串赋值,“=”后面的值也就是多维数组的终于取值。

    该功能的详细实现和操作,请查看我的 个人网址:http://www.phpthinking.com/archives/587


  • 相关阅读:
    判断的几种结构
    关于电脑的基础单词笔记
    JAVA插入数据笔记
    完全卸载oracle11g步骤
    hibernate框架
    Java中的字符串比较
    java集合 list与Set、Map区别
    向MyEclipse的项目中导入js文件时,出现小红叉
    Java基础面试题
    java面试题 -- JVM
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/4498019.html
Copyright © 2020-2023  润新知