分享
 
 
 

Class for reading INI files

王朝other·作者佚名  2006-01-10
窄屏简体版  字體: |||超大  

Simple class that supports reading sections, single values, and arrays from INI files.

from phpbuilder.com varel

<?

// filename: class.inifile.php

// author: victor m varela (victor@netims.com)

// comment: *.ini file reader for PHP

// license: LGPL

// date: mié oct 25 10:20:10 CEST 2000

//

// vie oct 27 12:25:48 CEST 2000

// 1.01 recognize some bool values (true, false, yes, no, on, off)

//

// vie oct 27 16:00:36 CEST 2000

// 1.02 bugfix: false value was returning default value

//

// lun oct 30 11:55:38 CET 2000

// 1.03 cached engine added

//

// dom dic 3 04:04:36 CET 2000

// 1.04 bug with "=" symbol fixed

// David P. Schwartz (davids@desertigloo.com)

//

// valid formats:

//

// [my-section]

// # single values

// var1 = value1

// var2=value 2

// var3 = 'value 3'

// ; if we use values between ' or ", they are not trimmed

// var4=" value 4"

//

// ; setting an array

// var_array1 = this is var_array1[0]

// var_array1 = this is var_array1[1]

// var_array1 = this is var_array1[2]

//

// sample_var = this is a = symbol

//

// cached values

$iniCachedValues = array();

$iniCachedSections = array();

$iniCachedFilenames = array();

class IniFile {

// private: do not use;

var $filename;

// constructor

function IniFile ($filename)

{

global $iniCachedValues, $iniCachedSections, $iniCachedFilenames;

$section = "";

$this->filename = $filename;

if (file_exists($filename) and ! isset($iniCachedFilenames[$filename])) {

$iniCachedFilenames[$filename] = $filename;

$lines = file($filename);

for ($i = 0; $i < count($lines); $i++) {

$lines[$i] = trim($lines[$i]);

if ($lines[$i][0] == ';' || $lines[$i][0] == '#') {

// it's a commment

continue;

} elseif (ereg("^\[(.*)\]", $lines[$i], $regs)) {

// new section

$section = strtolower(trim($regs[1]));

$iniCachedSections[$filename][] = trim($regs[1]);

} elseif (preg_match("'^(.*?)[\s]*=[\s]*(.*)'", $lines[$i], $regs)) {

// setting variable

$variable = strtolower(trim($regs[1]));

$value = trim($regs[2]);

if (ereg("^[\"'](.*)[\"']$", $value, $regs)) {

$value = $regs[1];

}

$lower_value = strtolower($value);

if (in_array($lower_value, array('true', 'yes', 'on'))) {

$value = 1;

}

elseif (in_array($lower_value, array('false', 'no', 'off'))) {

$value = 0;

}

if (! isset($iniCachedValues[$filename][$section][$variable])) {

// new variable

$iniCachedValues[$filename][$section][$variable] = $value;

}

elseif (gettype($iniCachedValues[$filename][$section][$variable]) == "array") {

// append new element to array

$iniCachedValues[$filename][$section][$variable][] = $value;

}

else {

// two values for a single variable, convert to array

$ovalue = $iniCachedValues[$filename][$section][$variable];

$iniCachedValues[$filename][$section][$variable] = array($ovalue,$value);

}

}

}

}

}

// returns file name

function fileName () { return $this->filename; }

// returns all sections

function readSections () {

global $iniCachedSections;

echo serialize($iniCachedSections);

return $iniCachedSections[$this->filename];

}

// returns all (variable,value) pairs for a section

function readSection ($section) {

global $iniCachedValues;

return $iniCachedValues[$this->filename][strtolower($section)];

}

// returns a value

function value($section, $variable, $default)

{

global $iniCachedValues;

$section = strtolower($section);

$variable = strtolower($variable);

if (isset($iniCachedValues[$this->filename][$section][$variable])) {

return $iniCachedValues[$this->filename][$section][$variable];

}

else {

return $default;

}

}

}

?>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有