PHP读取配置文件的类 php读取ini、yaml、xml配置文件信息

发布时间:2020-08-12编辑:脚本学堂
本文介绍下,php实现的用于读写ini、yaml、xml、php等文件中保存的配置信息的一个类,有需要的朋友参考学习下。

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

代码:
 

复制代码 代码示例:
<?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']; 
    } 
}
?>