<?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'];  
    }  
}
?>