免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3708 | 回复: 5
打印 上一主题 下一主题

求一段解析 .ini 文件的PHP代码 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-02-13 15:08 |只看该作者 |倒序浏览
最近一个项目需要解析 .ini 文件,请哪路高人给哥好的范例代码。
另外是不是 www.php.net 最近打不开了呀?

论坛徽章:
0
2 [报告]
发表于 2006-02-13 17:00 |只看该作者
真接用file()打开.然后再解析不行吗..?

论坛徽章:
0
3 [报告]
发表于 2006-02-13 17:03 |只看该作者
我是说解析 .ini 文件的内容,比如:
...
max = 100
min  = 5
...
读入 .ini 文件后来取得相应的变量。

论坛徽章:
0
4 [报告]
发表于 2006-02-13 17:06 |只看该作者
比如说 max = 100
读出来后用explode分割就行了.

论坛徽章:
0
5 [报告]
发表于 2006-02-13 20:43 |只看该作者
使用PHP的正则表达式来分析一个文件到相关数组中

  1. <?php
  2. $config_file = "php.ini";
  3. $fp = @fopen($config_file,"r")
  4. or die("can not open file $config_file!!");
  5. while ($line = @fgets($fp,1024)) {
  6.         $line = ereg_replace("#.*$", "", $line);
  7.         list($name,$value) = explode('=', $line);
  8.         $name = trim($name);
  9.         $value = trim($value);
  10.         $config[$name] = $value;
  11. }
  12. ?>
复制代码


随手写的。应该可以用

论坛徽章:
0
6 [报告]
发表于 2006-02-13 23:17 |只看该作者
parse_ini_file
(PHP 4, PHP 5)

parse_ini_file -- 解析一个配置文件
说明
array parse_ini_file ( string filename [, bool process_sections] )


parse_ini_file() 载入一个由 filename 指定的 ini 文件,并将其中的设置作为一个联合数组返回。如果将最后的 process_sections 参数设为 TRUE,将得到一个多维数组,包括了配置文件中每一节的名称和设置。process_sections 的默认值是 FALSE。

注: 本函数和 php.ini 文件没有关系,该文件在运行脚本时就已经处理过了。本函数可以用来读取你自己的应用程序的配置文件。

注: 如果 ini 文件中的值包含任何非字母数字的字符,需要将其括在双引号中(")。

注: 自 PHP 4.2.1 其本函数也受到安全模式和 open_basedir 的影响。

注: 自 PHP 5.0 版本开始,该函数也处理选项值内的新行。

注: 有些保留字不能作为 ini 文件中的键名,包括:null,yes,no,true 和 false。值为 null,no 和 false 等效于 "",值为 yes 和 true 等效于 "1"。字符 |&~![()" 也不能用在键名的任何地方,而且这些字符在选项值中有着特殊的意义。

ini 文件的结构和 php.ini 的相似。

常量也可以在 ini 文件中被解析,因此如果在运行 parse_ini_file() 之前定义了常量作为 ini 的值,将会被集成到结果中去。只有 ini 的值会被求值。例如:

例子 1. sample.ini 的内容

; This is a sample configuration file
; Comments start with ';', as in php.ini

[first_section]
one = 1
five = 5
animal = BIRD

[second_section]
path = /usr/local/bin
URL = "http://www.example.com/~username"




例子 2. parse_ini_file() 例子

<?php

define('BIRD', 'Dodo bird');

// Parse without sections
$ini_array = parse_ini_file("sample.ini");
print_r($ini_array);

// Parse with sections
$ini_array = parse_ini_file("sample.ini", true);
print_r($ini_array);

?>  

上例将输出:

Array
(
    [one] => 1
    [five] => 5
    [animal] => Dodo bird
    [path] => /usr/local/bin
    => [url]http://www.example.com/~username
)
Array
(
    [first_section] => Array
        (
            [one] => 1
            [five] => 5
            [animal] = Dodo bird
        )

    [second_section] => Array
        (
            [path] => /usr/local/bin
             => [url]http://www.example.com/~username
        )

)




由数字组成的键名和小节名会被 PHP 当作整数来处理,因此以 0 开头的数字会被当作八进制而以 0x 开头的会被当作十六进制。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP