时间:2021-07-01 10:21:17 帮助过:19人阅读
_settings; foreach ($var as $key) { if (!isset($result[$key])) { return false; } $result = $result[$key]; } return $result; // trigger_error ('Not yet implemented', E_USER_ERROR);//引发一个错误 } function load() { trigger_error ('Not yet implemented', E_USER_ERROR); } } /** * 针对PHP的配置,如有配置文件 * $file= 具体调用: include ('settings.php'); //原始环境假设每个类为单独的一个类名.php文件 // Load settings (PHP) $settings = new Settings_PHP; $settings->load('config.php'); echo 'PHP: ' . $settings->get('db.host') . ''; * */ Class Settings_PHP Extends Settings { function load ($file) { if (file_exists($file) == false) { return false; } // Include file include ($file); unset($file); //销毁指定变量 $vars = get_defined_vars(); //返回所有已定义变量的列表,数组,变量包括服务器等相关变量, //通过foreach吧$file引入的变量给添加到$_settings这个成员数组中去. foreach ($vars as $key => $val) { if ($key == 'this') continue; $this->_settings[$key] = $val; } } } //////////////////////读取INI文件,主要用到parser_ini_file函数,该函数返回一个数组,如第二个参数为true时则返回多维数组///////////////////////////////////////// /** * ini例子: * [db] name = test host = localhost 调用例子: $settings = new Settings_INI; $settings->load('config.ini'); echo 'INI: ' . $settings->get('db.host') . ''; * */ Class Settings_INI Extends Settings { function load ($file) { if (file_exists($file) == false) { return false; } $this->_settings = parse_ini_file ($file, true); } } //////////////////////读取XML文件,需要用到XML_PARSER////////////////////////////////////////////////////////// /** * XML例子:调用例子: // Load settings (XML) $settings = New Settings_XML; $settings->load('config.xml'); echo 'XML: ' . $settings->get('db.host') . ''; * */ Class Settings_XML Extends Settings { function load ($file) { if (file_exists($file) == false) { return false; } /**xmllib.php为PHP XML Library, version 1.2b,相关连接:http://keithdevens.com/software/phpxml xmllib.php主要特点是把一个数组转换成一个xml或吧xml转换成一个数组 XML_unserialize:把一个xml给转换 成一个数组 XML_serialize:把一个数组转换成一个xml 自PHP5起,simpleXML就很不错,但还是不支持将xml转换成数组的功能,所以xmlLIB还是很不错的. */ include ('xmllib.php'); $xml = file_get_contents($file); $data = XML_unserialize($xml); $this->_settings = $data['settings']; } } //////////////////////////////////读取YAML格式文件/////////////////////////////////////////////// /** 使用YAML必须使用到SPYC这个库,相关链接在http://spyc.sourceforge.net/ YAML配置例子: db: name: test host: localhost */ Class Settings_YAML Extends Settings { function load ($file) { if (file_exists($file) == false) { return false; } include ('spyc.php'); $this->_settings = Spyc::YAMLLoad($file); } } test localhost