php xml 작업 클래스(맞춤형)

WBOY
풀어 주다: 2016-07-25 09:04:10
원래의
1075명이 탐색했습니다.
  1. /**

  2. php xml 연산 클래스
  3. 링크: http://bbs.it-home.org
  4. */
  5. 클래스 요구로그
  6. {
  7. 보호됨 static $requirelog;

  8. //xml 준비, xml이 없으면 xml 생성

  9. 정적 함수 _initializeLog()
  10. {
  11. if(file_exists('requirelog.xml'))
  12. {

  13. self::$requirelog = DOMDocument::load('requirelog.xml');

  14. }
  15. else
  16. {
  17. self::$requirelog = new DOMDocument('1.0', 'iso-8859 -1');
  18. self::$requirelog->loadXML('');
  19. self::$requirelog->save('requirelog.xml');
  20. }
  21. }
  22. //获取finish字段전체 부서
  23. 공개 정적 함수 get_entrys( )
  24. {
  25. self::_initializeLog();
  26. $entrys = self::$requirelog->getElementsByTagName('entry');
  27. $entry_arrays = array();
  28. foreach ($entry를 $entry로)
  29. {
  30. if($entry->getElementsByTagName('finish')->item(0)->nodeValue == 0)
  31. {
  32. $ Entry_array = array();
  33. $entry_array['id'] = $entry->getElementsByTagName('id')->item(0)->nodeValue;
  34. $entry_array['time'] = $entry->getElementsByTagName('time')->item(0)->nodeValue;
  35. $entry_array['operator'] = $entry->getElementsByTagName('operator')->item (0)->nodeValue;
  36. $entry_array['byoperator'] = $entry->getElementsByTagName('byoperator')->item(0)->nodeValue;
  37. $entry_array['parameters1 '] = $entry->getElementsByTagName('parameters1')->item(0)->nodeValue;
  38. $entry_array['parameters2'] = $entry->getElementsByTagName('parameters2')-> ;item(0)->nodeValue;
  39. $entry_array['parameters3'] = $entry->getElementsByTagName('parameters3')->item(0)->nodeValue;

  40. $entry_array['type'] = $entry->getElementsByTagName('type')->item(0)->nodeValue;

  41. $entry_array['module'] = $entry->getElementsByTagName(' module')->item(0)->nodeValue;
  42. $entry_array['finish'] = $entry->getElementsByTagName('finish')->item(0)->nodeValue;
  43. $entry_arrays[] = $entry_array;
  44. }
  45. }
  46. return $entry_arrays;
  47. }
  48. //获取所有节点
  49. 공개 정적 함수 get_count_entrys()
  50. {
  51. self::_initializeLog();
  52. $entrys = self::$requirelog->getElementsByTagName('entry');
  53. $entry_arrays = array();
  54. foreach( $entry를 $entry로)
  55. {

  56. $entry_array = array();

  57. $entry_array['id'] = $entry->getElementsByTagName('id')->item(0)->nodeValue;
  58. $entry_array['time' ] = $entry->getElementsByTagName('time')->item(0)->nodeValue;
  59. $entry_array['operator'] = $entry->getElementsByTagName('operator')-> item(0)->nodeValue;
  60. $entry_array['byoperator'] = $entry->getElementsByTagName('byoperator')->item(0)->nodeValue;
  61. $entry_array[' parameters1'] = $entry->getElementsByTagName('parameters1')->item(0)->nodeValue;
  62. $entry_array['parameters2'] = $entry->getElementsByTagName('parameters2')- >item(0)->nodeValue;
  63. $entry_array['parameters3'] = $entry->getElementsByTagName('parameters3')->item(0)->nodeValue;

  64. $entry_array['type'] = $entry->getElementsByTagName('type')->item(0)->nodeValue;

  65. $entry_array['module'] = $entry->getElementsByTagName(' module')->item(0)->nodeValue;
  66. $entry_array['finish'] = $entry->getElementsByTagName('finish')->item(0)->nodeValue;
  67. $entry_arrays[] = $entry_array;

  68. }

  69. $entry_arrays 반환;
  70. }
  71. //根据ID获取节点

  72. public static function get_entry($id)
  73. {
  74. self::_initializeLog();
  75. $count=count(self::get_count_entrys());
  76. if($count > 0)
  77. {
  78. $entrys = self::$requirelog->getElementsByTagName('entry');
  79. foreach($entrys as $entry)
  80. {
  81. if ($id == $entry->getElementsByTagName('id')->item(0)->nodeValue)
  82. {
  83. $entry_array = array();
  84. $entry_array[ 'id'] = $entry->getElementsByTagName('id')->item(0)->nodeValue;
  85. $entry_array['time'] = $entry->getElementsByTagName('time') ->item(0)->nodeValue;
  86. $entry_array['operator'] = $entry->getElementsByTagName('operator')->item(0)->nodeValue;
  87. $ Entry_array['byoperator'] = $entry->getElementsByTagName('byoperator')->item(0)->nodeValue;
  88. $entry_array['parameters1'] = $entry->getElementsByTagName('parameters1 ')->item(0)->nodeValue;
  89. $entry_array['parameters2'] = $entry->getElementsByTagName('parameters2')->item(0)->nodeValue;
  90. $entry_array['parameters3'] = $entry->getElementsByTagName('parameters3')->item(0)->nodeValue;

  91. $entry_array['type'] = $entry->getElementsByTagName('type')->item(0)->nodeValue;

  92. $entry_array['module'] = $entry->getElementsByTagName(' module')->item(0)->nodeValue;
  93. $entry_array['finish'] = $entry->getElementsByTagName('finish')->item(0)->nodeValue;
  94. return $entry_array;
  95. }
  96. }
  97. }
  98. else
  99. return null;
  100. }

  101. //执行完用户请求,更改finsh字段

  102. public static function do_finsh($id)
  103. {
  104. self::_initializeLog();
  105. $entrys = self::$requirelog->getElementsByTagName ('entry');
  106. $entry_arrays = array();
  107. foreach($entrys as $entry)
  108. {
  109. if($entry->getElementsByTagName('id')-> item(0)->nodeValue == $id)
  110. {
  111. $entry->getElementsByTagName('finish')->item(0)->nodeValue = 1;
  112. }
  113. }

  114. self::$requirelog->save('requirelog.xml');

  115. }
  116. //새 노드 추가, $operator는 연산자, $byoperator는 작동되는 객체, $parameters1,2,3은 확장 가능한 매개변수, $type은 유형, $module 영향을 받는 모듈의 경우

  117. 정적 함수 add_entry($operator,$byoperator,$parameters1,$parameters2,$parameters3,$type,$module)
  118. {
  119. //$contents = self::$restlog- >getElementsByTagName('contents');

  120. self::_initializeLog();

  121. $count=count(self::get_count_entrys());

  122. $entry = self::$requirelog->createElement('entry');

  123. $id = self::$requirelog->createElement(' id');

  124. $idvalue = self::$requirelog->createTextNode($count 1);
  125. $id->appendChild($idvalue);

  126. createElement('time');
  127. $timevalue = self::$requirelog->createTextNode(date("Y-m-d H:i:s",time()) );
  128. $time->appendChild($timevalue);

  129. $op = self::$requirelog->createElement('operator');

  130. $ opvalue = self::$requirelog->createTextNode($operator);
  131. $op->appendChild($opvalue);

  132. $bop = self::$requirelog ->createElement('byoperator');

  133. $bopvalue = self::$requirelog->createTextNode($byoperator);
  134. $bop->appendChild($bopvalue);

  135. $ps1 = self::$requirelog->createElement('parameters1');

  136. $ps1value = self::$requirelog->createTextNode($parameters1);
  137. $ps1- >appendChild($ps1value);

  138. $ps2 = self::$requirelog->createElement('parameters2');

  139. $ps2value = self::$requirelog- >createTextNode($parameters2);
  140. $ps2->appendChild($ps2value);

  141. $ps3 = self::$requirelog->createElement('parameters3' );

  142. $ps3value = self::$requirelog->createTextNode($parameters3);
  143. $ps3->appendChild($ps3value);

  144. $tp = self::$requirelog->createElement('type');
  145. $tpvalue = self::$requirelog->createTextNode($type);
  146. $tp->appendChild($ tpvalue);

  147. $md = self::$requirelog->createElement('module');

  148. $mdvalue = self::$requirelog->createTextNode($ 모듈);
  149. $md->appendChild($mdvalue);

  150. $fi = self::$requirelog->createElement('finish');

  151. $fivalue = self::$requirelog->createTextNode(0);
  152. $fi->appendChild($fivalue);

  153. $entry->appendChild($ id);

  154. $entry->appendChild($time);
  155. $entry->appendChild($op);
  156. $entry->appendChild($bop);
  157. $entry ->appendChild($ps1);
  158. $entry->appendChild($ps2);
  159. $entry->appendChild($ps3);
  160. $entry->appendChild($tp) ;
  161. $entry->appendChild($md);
  162. $entry->appendChild($fi);

  163. self::$requirelog->documentElement ->appendChild($entry);

  164. self::$requirelog->save('requirelog.xml');

  165. return 1;

  166. }
  167. }
  168. ?>

코드 복사

2、requirelog.xml文件,参考格式如下:

  1. <내용>
  2. <항목> ;
  3. 1
  4. peng.zhou
  5. zxcxzcxzczxcxz
  6. cxzcxzc
  7. add_group
  8. cn_group
  9. 1
  10. 2< /id>
  11. peng.zhou
  12. 판매
  13. <매개변수1/>
  14. <매개변수2/>
  15. <매개변수3/>
  16. add_member
  17. mail_group
  18. 1
复主代码


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!