首頁  >  文章  >  後端開發  >  PHP讀取四個設定檔(php,ini,yaml,xml)的例子

PHP讀取四個設定檔(php,ini,yaml,xml)的例子

WBOY
WBOY原創
2016-07-25 09:11:47967瀏覽

PHP讀取四種設定檔(php,ini,yaml,xml)的例子,程式碼如下,大家自己看吧,說不好哪天就能用得上哦。

  1. /**

  2. * 讀取4中配置的表格資訊,現支援php.ini,xml.yaml
  3. */
  4. 類別設定{
  5. var $_settings = array( );
  6. /**
  7. * 取得某些設定的值
  8. *
  9. * @param unknown_type $var
  10. * @return unknown
  11. */
  12. function get($var) {
  13. $var =explode('.', $var);
  14. < ;p> $result = $this->_settings;
  15. foreach ($var as $key) {
  16. if (!isset($result[$key])) { return false; } }
  17. $result = $result[$key];

  18. }
  19. 回傳$結果;

  20. // trigger_error ('尚未實現', E_USER_ERROR);//引發一個錯誤

  21. }
  22. function load() {

  23. trigger_error ('尚未實現', E_USER_ERROR);
  24. }
  25. } p>
  26. /**

  27. * 針對PHP的設定,如有設定檔
  28. * $file=
  29. $db = array();
  30. // Enter your database name here:

  31. $db['name'] = 'test';
  32. // Enter the hostname of your MySQL server:

  33. $db['host'] = 'localhost';
  34. ?>

  35. 具體呼叫:

  36. include ('settings.php'); //原始環境假設每個類別為單獨的一個類別名稱.php檔
  37. // Load settings (PHP)

  38. $settings = new Settings_PHP;
  39. $settings->load('config.php');
  40. echo 'PHP: ' . $settings->get('db.host') . '';

  41. *

  42. */
  43. 類別Settings_PHP 擴充設定{
  44. function load ($file) {
  45. if (file_exists($file) == false) { return false; }
  46. // 包含檔案

  47. include ($file);
  48. unset($file); //輸入指定變數
  49. $vars = get_define_vars(); //返回所有已定義的端口的列表,數據庫,端口包括服務器等相關端口,
  50. //通過foreach吧$file引入的端口給添加到$_settings這個成員數據庫中去。
  51. foreach ($vars as $key => $val) {
  52. if ($key == 'this') continue;
  53. $this->_settings[$key] = $val;

  54. }
  55. }
  56. }
  57. ///////////// /////////讀取INI文件,主要佔用parser_ini_file函數,該函數返回一個資料庫,若第二個參數為true時則返回多維資料庫////////// //////////

  58. /**
  59. * ini範例:
  60. * [db]
  61. name = test
  62. host = localhost
  63. 呼叫範例:
  64. $settings = new Settings_INI;
  65. $settings->load( 'config.ini');
  66. echo 'INI: ' . $settings->get('db.host') . '';
  67. *

  68. */
  69. Class Settings_INI 擴充設定{
  70. function load ($file) {
  71. if (file_exists($file) = =假){返回假; }
  72. $this ->_settings = parse_ini_file ($file, true);
  73. }
  74. }
  75. //////////// //////// ///讀取XML文件,需要佔用XML_PARSER////////////////////////

  76. /**
  77. * XML 範例:
  78. test
  79. localhost
  80. 呼叫範例:
  81. // 載入設定(XML)
  82. $settings = New Settings_XML;
  83. $settings->load('config.xml');
  84. echo 'XML: ' 。 $settings->get('db.host') 。 '';
  85. *
  86. */
  87. Class Settings_XML 擴充設定{
  88. function load ($file) {
  89. if (file_exists($file) == false) { return false; }
  90. /**xmllib.php為PHP XML Library, version 1.2b,相關連線:http://keithdevens.com/software/phpxml

  91. xmllib.php主要特點是把一個陣列轉換成一個xml或吧xml轉換成一個陣列
  92. XML_unserialize:把一個xml給轉換成一個陣列
  93. XML_serialize:把一個陣列轉換成一個xml
  94. 自PHP5起,simpleXML就很不錯,但還是不支援將xml轉換成陣列的功能,所以xmlLIB還是很不錯的.
  95. * /
  96. include ('xmllib.php');
  97. $xml = file_get_contents($file);
  98. $data = XML_unserialize($xml);
  99. $this->_settings = $data[' settings'];
  100. }
  101. }
  102. //////////////////////////////////讀取YAML格式檔案//////// ///////////////////////////////////////
  103. /**
  104. 使用YAML必須使用到SPYC這個函式庫,相關連結在http://spyc.sourceforge.net/
  105. YAML設定範例:
  106. db:
  107. name: test
  108. host: localhost
  109. */
  110. Class Settings_YAML Extends Settings {
  111. function load ($file) {
  112. if (file_exists($file) == false) { return false; }
  113. include (' spyc.php');

  114. $this->_settings = Spyc::YAMLLoad($file);
  115. }
  116. }
複製程式碼


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn