Home >Backend Development >PHP Tutorial >php xml operation class (customized)

php xml operation class (customized)

WBOY
WBOYOriginal
2016-07-25 09:04:101116browse
  1. /**

  2. php xml operation class
  3. link: http://bbs.it-home.org
  4. */
  5. class requirelog
  6. {
  7. protected static $requirelog;

  8. //get ready for xml,if xml is not found ,create xml

  9. static function _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字段全部为0的所有节点
  23. public static function get_entrys()
  24. {
  25. self::_initializeLog();
  26. $entrys = self::$requirelog->getElementsByTagName('entry');
  27. $entry_arrays = array();
  28. foreach($entrys as $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. public static function get_count_entrys()
  50. {
  51. self::_initializeLog();
  52. $entrys = self::$requirelog->getElementsByTagName('entry');
  53. $entry_arrays = array();
  54. foreach($entrys as $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. return $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. //Add a new node, $operator is the operator, $byoperator is the operated object, $parameters1,2,3 are extensible parameters, $type is the type, $module is the influence Module

  117. static function 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. $time = self::$requirelog->createElement('time');

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

  129. createElement('operator');
  130. $opvalue = self::$requirelog->createTextNode($operator);
  131. $op->appendChild($opvalue);< ;/p>
  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($module);
  149. $md->appendChild($mdvalue);< /p>
  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. ?> ;

Copy code

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

  1. 1
  2. peng.zhou
  3. zxcxzcxzczxcxz
  4. cxzcxzc
  5. add_group
  6. cn_group
  7. 1
  8. 2
  9. peng.zhou
  10. sales
  11. add_member
  12. mail_group
  13. 1
复制代码


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn