天天看点

PHP读取配置文件类(php,ini,yaml,xml)

PHP读取配置文件类(php,ini,yaml,xml)

<?php  

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 {  

        $this->_settings = parse_ini_file($file, true);  

class settings_yaml extends settings {  

        include ('spyc.php');  

        $this->_settings = spyc::yamlload($file);  

class settings_xml extends settings {  

        include ('xmllib.php');  

        $xml = file_get_contents($file);  

        $data = xml_unserialize($xml);  

        $this->_settings = $data ['settings'];  

?>