<?php
/**
* 读取4中配置的表信息,现支持php.ini,xml.yaml
*/
class Settings{
var $_settings = array();
/**
* 获取某些设置的值
*
* @param unknown_type $var
* @return unknown
*/
function get($var) {
$var = explode('.', $var);
$result = $this->_settings;
foreach ($var as $key) {
if (!isset($result[$key])) { return false; }
$result = $result[$key];
}
return $result;
// trigger_error ('Not yet implemented', E_USER_ERROR);//引发一个错误
}
function load() {
trigger_error ('Not yet implemented', E_USER_ERROR);
}
}
/**
* 针对PHP的配置,如有配置文件
* $file=
<?php
$db = array();
// Enter your database name here:
$db['name'] = 'test';
// Enter the hostname of your MySQL server:
$db['host'] = 'localhost';
?>
具体调用:
include ('settings.php'); //原始环境假设每个类为单独的一个类名.php文件
// Load settings (PHP)
$settings = new Settings_PHP;
$settings->load('config.php');
echo 'PHP: ' . $settings->get('db.host') . '';
*
*/
Class Settings_PHP Extends Settings {
function load ($file) {
if (file_exists($file) == false) { return false; }
// Include file
include ($file);
unset($file); //销毁指定变量
$vars = get_defined_vars(); //返回所有已定义变量的列表,数组,变量包括服务器等相关变量,
//通过foreach吧$file引入的变量给添加到$_settings这个成员数组中去.
foreach ($vars as $key => $val) {
if ($key == 'this') continue;
$this->_settings[$key] = $val;
}
}
}
//////////////////////读取INI文件,主要用到parser_ini_file函数,该函数返回一个数组,如第二个参数为true时则返回多维数组/////////////////////////////////////////
/**
* ini例子:
* [db]
name = test
host = localhost
调用例子:
$settings = new Settings_INI;
$settings->load('config.ini');
echo 'INI: ' . $settings->get('db.host') . '';
*
*/
Class Settings_INI Extends Settings {
function load ($file) {
if (file_exists($file) == false) { return false; }
$this->_settings = parse_ini_file ($file, true);
}
}
//////////////////////读取XML文件,需要用到XML_PARSER//////////////////////////////////////////////////////////
/**
* XML例子:
<?xml version="1.0" encoding="UTF-8"?>
<settings>
<db>
<name>test</name>
<host>localhost</host>
</db>
</settings>
调用例子:
// Load settings (XML)
$settings = New Settings_XML;
$settings->load('config.xml');
echo 'XML: ' . $settings->get('db.host') . '';
*
*/
Class Settings_XML Extends Settings {
function load ($file) {
if (file_exists($file) == false) { return false; }
/**xmllib.php为PHP XML Library, version 1.2b,相关连接:http://keithdevens.com/software/phpxml
xmllib.php主要特点是把一个数组转换成一个xml或吧xml转换成一个数组
XML_unserialize:把一个xml给转换 成一个数组
XML_serialize:把一个数组转换成一个xml
自PHP5起,simpleXML就很不错,但还是不支持将xml转换成数组的功能,所以xmlLIB还是很不错的.
*/
include ('xmllib.php');
$xml = file_get_contents($file);
$data = XML_unserialize($xml);
$this->_settings = $data['settings'];
}
}
//////////////////////////////////读取YAML格式文件///////////////////////////////////////////////
/**
使用YAML必须使用到SPYC这个库,相关链接在http://spyc.sourceforge.net/
YAML配置例子:
db:
name: test
host: localhost
*/
Class Settings_YAML Extends Settings {
function load ($file) {
if (file_exists($file) == false) { return false; }
include ('spyc.php');
$this->_settings = Spyc::YAMLLoad($file);
}
}
分享到:
相关推荐
主要介绍了python读取配置文件方式(ini、yaml、xml),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
主要介绍了PHP读取配置文件类,可读取ini,yaml,xml等配置文件,具有一定参考借鉴价值,需要的朋友可以参考下
该资源详细介绍了Java如何读取各种配置文件。如xml ini 等等
这是一个解决Java开发中读取配置文件每次都要重写的困惑。 特性 开箱即用,简单方便 支持JDK1.6+ 无需过多依赖,按需添加 状态 [已完成] 解析Properties配置文件 [待完成] 解析Xml配置文件 [待完成] 解析Ini配置...
它可以读取以下格式的配置文件:php yaml json xml ini dotenv Conphigure还可以读取包含配置文件的整个目录。 通过Composer安装$ composer需要thewunder / conphigure用法如果您在myfile.yml smtp中进行了配置:...
2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...
2017年5月:增加了对以新的格式读取Feed的支持-惊喜,惊喜-JSON。什么是Web Feed? 请参阅“页面»。用法结构提要•项目•作者•标签•附件•生成器Feed结构对应注意:对可选元素使用问号( ? )(否则假定为必需...
[ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的...
[ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的...
[ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的...
[ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的...
[ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的...
[ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的...
[ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的...
[ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的...
[ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的...
[ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的...
[ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的...