本文介绍下,php实现的用于读写ini、yaml、xml、php等文件中保存的配置信息的一个类,有需要的朋友参考学习下。 php读取配置文件的类,可以读取ini、yaml、xml类型的配置文件信息。代码: 复制…,

本文介绍下,php实现的用于读写ini、yaml、xml、php等文件中保存的配置信息的一个类,有需要的朋友参考学习下。

php读取配置文件的类,可以读取ini、yaml、xml类型的配置文件信息。

代码:
 

<?php
/**
* 功能:读取配置文件
* 编辑:www.90codes.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'];  
    }  
}
?>