<?php
/**
* 功能:读取配置文件
* 编辑:www.jb200.com
* 最后修改:2013/10/11
*/
class Settings {
var $_settings = array();
function get($var) {
$var = explode('.', $var);
$result = $this->_settings;
foreach ($var as $key) {
if (!isset ($result [$key])) {
return false;
}
$result = $result [$key];
}
return $result;
}
function load() {
trigger_error('Not yet implemented', E_USER_ERROR);
}
}
class Settings_PHP extends Settings {
function load($file) {
if (
file_exists($file) == false) {
return false;
}
//
include file
include ($file);
unset ($file);
// Get declared variables
$vars = get_defined_vars();
// Add to settings array
foreach ($vars as $key => $val) {
if ($key == 'this')
continue;
$this->_settings [$key] = $val;
}
}
}
class Settings_INI extends Settings {
function load($file) {
if (file_exists($file) == false) {
return false;
}
$this->_settings = parse_ini_file($file, true);
}
}
class Settings_YAML extends Settings {
function load($file) {
if (file_exists($file) == false) {
return false;
}
include ('spyc.php');
$this->_settings = Spyc::YAMLLoad($file);
}
}
class Settings_XML extends Settings {
function load($file) {
if (file_exists($file) == false) {
return false;
}
include ('xmllib.php');
$xml =
file_get_contents($file);
$data = XML_unserialize($xml);
$this->_settings = $data ['settings'];
}
}
?>