php读取四种配置文件(php,ini,yaml,xml)的例子,代码如下,大家自己看吧,说不好哪天就能用得上哦。
_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 = testhost = 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例子: test localhost 调用例子:// 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);}}
复制代码
