PHP讀取四種設定檔(php,ini,yaml,xml)的例子,程式碼如下,大家自己看吧,說不好哪天就能用得上哦。
-
-
/**
- * 讀取4中配置的表格資訊,現支援php.ini,xml.yaml
- */
- 類別設定{
- var $_settings = array( );
- /**
- * 取得某些設定的值
- *
- * @param unknown_type $var
- * @return unknown
- */
- function get($var) {
- $var =explode('.', $var);
- < ;p> $result = $this->_settings;
- foreach ($var as $key) {
- if (!isset($result[$key])) { return false; } }
-
$result = $result[$key];
- }
回傳$結果;
// trigger_error ('尚未實現', E_USER_ERROR);//引發一個錯誤
- }
function load() {
- trigger_error ('尚未實現', E_USER_ERROR);
- }
- } p>
/**
- * 針對PHP的設定,如有設定檔
- * $file=
-
$db = array();
// Enter your database name here:
- $db['name'] = 'test';
// Enter the hostname of your MySQL server:
- $db['host'] = 'localhost';
?>
具體呼叫:
- include ('settings.php'); //原始環境假設每個類別為單獨的一個類別名稱.php檔
// Load settings (PHP)
- $settings = new Settings_PHP;
- $settings->load('config.php');
echo 'PHP: ' . $settings->get('db.host') . '';
*
- */
- 類別Settings_PHP 擴充設定{
- function load ($file) {
- if (file_exists($file) == false) { return false; }
// 包含檔案
- include ($file);
- unset($file); //輸入指定變數
- $vars = get_define_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 擴充設定{
- function load ($file) {
- if (file_exists($file) = =假){返回假; }
- $this ->_settings = parse_ini_file ($file, true);
- }
- }
//////////// //////// ///讀取XML文件,需要佔用XML_PARSER////////////////////////
- /**
- * XML 範例:
-
-
-
- test
- localhost
-
-
- 呼叫範例:
- // 載入設定(XML)
- $settings = New Settings_XML;
- $settings->load('config.xml');
- echo 'XML: ' 。 $settings->get('db.host') 。 '';
- *
- */
- Class Settings_XML 擴充設定{
- 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);
- }
- }
-
複製程式碼
|