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);}}