ホームページ  >  記事  >  バックエンド開発  >  4 つの設定ファイル (php、ini、yaml、xml) を読み取る PHP の例

4 つの設定ファイル (php、ini、yaml、xml) を読み取る PHP の例

WBOY
WBOYオリジナル
2016-07-25 09:11:471016ブラウズ

PHP が 4 つの設定ファイル (php、ini、yaml、xml) を読み込む例は次のとおりです。いつかは使用できるようになるかもしれません。

  1. /**

  2. * 4で設定したテーブル情報を読み込み、php.ini、xml.yamlをサポートするようになりました
  3. */
  4. class設定{
  5. var $_settings = array();
  6. /**
  7. * 一部の設定の値を取得します
  8. *
  9. * @paramknown_type $var
  10. * @returnunknown
  11. */
  12. function get($ var) {
  13. $var =explode('.', $var);

  14. $result = $this->_settings;

  15. foreach ($var as $key) {
  16. if (!isset($result[$key])) { return false; }

  17. $result = $result[$key];

  18. }

  19. $result;

  20. を返す //trigger_error ('まだ実装されていません', E_USER_ERROR);//引播一个错误

  21. }

  22. function load() {

  23. trigger_error ('まだ実装されていません', E_USER_ERROR);
  24. }
  25. }

  26. /**

  27. * PHP 設定の場合、設定ファイルがある場合
  28. * $file=
  29. $db = array();

  30. // ここにデータベース名を入力してください:

  31. $ db ['name'] = 'test';

  32. // MySQL サーバーのホスト名を入力してください:

  33. $db['host'] = 'localhost';

  34. < ;p>?>

  35. 特定の呼び出し:

  36. include ('settings.php'); //元の環境では、各クラスが個別のクラス名であることを前提としています。php ファイル
  37. // 設定をロード (PHP)

  38. $settings = new Settings_PHP;
  39. $settings->load('config.php');

  40. echo 'PHP: ' . $settings->get('db.host') '';

  41. *

  42. */
  43. Class Settings_PHP Extends Settings {
  44. function load ($ file) {
  45. if (file_exists($file) == false) { return false; }

  46. // ファイルをインクルードします

  47. include ($file);
  48. unset($file); //销毁指定变量
  49. $vars = get_define_vars(); // サービスを含むすべての既定変更量の列表,数組, を返します。 > $val) {
  50. if ($key == 'this') 続行;

  51. $this->_settings[$key] = $val;

  52. }
  53. }
  54. }

  55. //////////////////// // INI 文を取って、parser_ini_file 関数に主に使用され、この関数数は 1 つの数組を返します。たとえば 2 番目のパラメータが true の場合は複数の数組を返します/////////////////// //

  56. /**
  57. * ini の例:
  58. * [db]
  59. name = test
  60. host = localhost
  61. Call の例:
  62. $settings = new Settings_INI;
  63. $settings->load('config.ini');
  64. echo 'INI: ' . $settings->get('db.host') '';

  65. *

  66. */
  67. Class Settings_INI 拡張設定 {
  68. function load ($file) {
  69. if (file_exists($file) == false) { return false; }
  70. $this->_settings = parse_ini_file ($file, true);
  71. }
  72. }

  73. /////////////////// ///XML 文件を读取し、XML_PARSER に必要用///////////////////////

  74. /**
  75. * XML の例:
  76. test
  77. localhost
  78. 调用例子:
  79. // 設定 (XML) をロードします
  80. $settings = New Settings_XML;
  81. $settings->load('config.xml') ;
  82. エコー 'XML: ' 。 $settings->get('db.host') 。 '';
  83. *
  84. */
  85. クラス設定_XML 拡張設定{
  86. function load ($file) {
  87. if (file_exists($file) == false) { return false; }

  88. /**xmllib.php は PHP XML ライブラリ、バージョン 1.2b です。関連リンク: http://keithdevens.com/software/phpxml

  89. xmllib.php の主な機能は、配列を xml に変換するか、xml を配列に変換することです
  90. XML_unserialize : xmlを配列に変換します
  91. XML_serialize: 配列をxmlに変換します
  92. PHP5以降、simpleXMLは非常に優れていますが、xmlを配列に変換する機能はまだサポートされていないため、xmlLIBは依然として非常に優れています
  93. */
  94. include ('xmllib.php');
  95. $xml = file_get_contents($file);
  96. $data = XML_unserialize($xml);
  97. $this->_settings = $data['settings'];
  98. }
  99. }
  100. //////////////////////////////////YAML 形式ファイルの読み取り///////// / /////////////////////////////////////
  101. /**
  102. YAML を使用するには、SPYC ライブラリを使用する必要があります。関連するリンクは http://spyc.sourceforge.net/
  103. YAML 設定例:
  104. db:
  105. name: test
  106. host: localhost
  107. */
  108. クラスSettings_YAML は設定を拡張します {
  109. function load ($file) {
  110. if (file_exists($file) == false) { return false; }

  111. include ('spyc.php');

  112. $ this- >_settings = Spyc::YAMLLoad($file);
  113. }
  114. }

コードをコピー


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。