>  기사  >  백엔드 개발  >  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. 클래스 설정{
  5. var $_settings = array();
  6. /**
  7. * 일부 설정 값 가져오기
  8. *
  9. * @paramknown_type $var
  10. * @returnunknown
  11. */
  12. function get($var) {
  13. $var =explod('.', $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. ?>

  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') '';< /p>

  41. *

  42. */
  43. 클래스 설정_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($vars $key => $val) {
  51. if ($key == 'this') continue;

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

  53. }
  54. }
  55. }

  56. //////////// /////////读取INI文件,主要用到parser_ini_file函数,该函数返回一个数组,如第二个参数为true时则返回多维数组/////////// /////////

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

  66. *

  67. */
  68. 클래스 설정_INI 확장 설정 {
  69. function load ($file) {
  70. if (file_exists($file) = = 거짓) { 거짓을 반환; }
  71. $this->_settings =parse_ini_file($file, true);
  72. }
  73. }

  74. /////////// //////////读取XML文件,需要用到XML_PARSER////////////////////////

  75. /**
  76. * XML 형식:
  77. test
  78. localhost
  79. 调用例子:
  80. // 설정 로드(XML)
  81. $settings = 새 설정_XML;
  82. $settings->load('config.xml');
  83. echo 'XML: ' . $settings->get('db.host') . '';
  84. *
  85. */
  86. 클래스 설정_XML 확장 설정 {
  87. 함수 로드($file) {
  88. if(file_exists($file) == false) { return false; }

  89. /**xmllib.php는 PHP XML 라이브러리 버전 1.2b입니다. 관련 링크: http://keithdevens.com/software/phpxml

  90. xmllib.php의 주요 기능은 배열을 xml로 변환하거나 xml을 배열로 변환하는 것입니다.
  91. XML_unserialize: xml을 배열로 변환
  92. XML_serialize: 배열을 xml로 변환
  93. PHP5 이후로 simpleXML은 매우 좋지만, 여전히 xml을 배열로 변환하는 기능을 지원하지 않으므로 xmlLIB 그래도 아주 좋습니다.
  94. */
  95. include ('xmllib.php');
  96. $xml = file_get_contents($file);
  97. $data = XML_unserialize($xml);
  98. $this->_settings = $data['settings'];
  99. }
  100. }
  101. /////////////////////////////////YAML 형식 파일 읽기//////// //////////////////////////////////////
  102. /**
  103. YAML을 사용하려면 SPYC 라이브러리를 사용해야 합니다. 관련 링크는 http://spyc.sourceforge.net/
  104. YAML 구성 예:
  105. db:
  106. 이름: test
  107. 호스트: 로컬호스트
  108. * /
  109. 클래스 설정_YAML 확장 설정 {
  110. function load ($file) {
  111. if (file_exists($file) == false) { return false }

  112. include ('spyc.php');

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

코드 복사


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.