首頁  >  文章  >  後端開發  >  php xml操作類別(自訂)

php xml操作類別(自訂)

WBOY
WBOY原創
2016-07-25 09:04:101093瀏覽
複製程式碼
  1. /**

  2. php xml操作類別
  3. link:http://bbs.it-home.org
  4. */
  5. class requirelog
  6. {
  7. protected 靜態$ requirelog;
  8. //準備xml,若找不到xml,建立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 ($arrays = array();
  29. foreach ($arrays條目為$entry)
  30. {
  31. if($entry->getElementsByTagName('finish')->item(0)->nodeValue == 0)
  32. {
  33. $ Entry_array = array() ;
  34. $entry_array['id'] = $entry->getElementsByTagName('id')->item(0)->nodeValue;
  35. $entry_array['time'] = $entry->getElementsByTagName(' time')->item(0)->nodeValue;
  36. $entry_array['operator'] = $entry->getElementsByTagName('operator')->item (0)->nodeValue;
  37. $entry_array[ 'byoperator'] = $entry->getElementsByTagName('byoperator')->item(0)->nodeValue;
  38. $entry_array['parameters1 '] = $entry->getElementsByTagName('parameters1')->item( 0)->nodeValue;
  39. $entry_array['parameters2'] = $entry->getElementsByTagName('parameters2')-> ;item(0)->nodeValue;
  40. $entry_array['parameters3'] = $parameters3'] = $ Entry->getElementsByTagName('parameters3')->item(0)->nodeValue;
  41. $entry_array['type'] = $entry->getElementsByTagName('type')->itemtype')->item (0)->nodeValue;

  42. $entry_array['module'] = $entry->getElementsByTagName(' module')->item(0)->nodeValue;
  43. $entry_array['finish'] = $ Entry->getElementsByTagName('finish')->item(0)->nodeValue;
  44. $entry_arrays[] = $entry_array;
  45. }
  46. }
  47. return $entry_arra;
  48. }
  49. //取得所有的節點
  50. public static function get_count_entrys()
  51. {
  52. self::_initializeLog();
  53. $entrys = self::$require-> Entry');
  54. $entry_arrays = array();
  55. foreach( $entrys 作為$entry)
  56. {
  57. $entry_array = array();

  58. $ $ Entry_array['id'] = $entry->getElementsByTagName('id')->item(0)->nodeValue;
  59. $entry_array['time'] = $entry->getElementsByTagName('time')-> item(0)->nodeValue;
  60. $entry_array['operator'] = $entry->getElementsByTagName('operator')-> item(0)->nodeValue;
  61. $entry_array['byoperator'] = $entry->getElementsByTagName('byoperator')->item(0)->nodeValue;
  62. $entry_array['parameters1'] = $entry->getElementsByTagName('parameters1')->item(0)->nodeValue ;
  63. $entry_array['parameters2'] = $entry->getElementsByTagName('parameters2')->item(0)->nodeValue;
  64. $entry_array['parameters3'] = $entry->getElementsBTagyName('參數3')->item(0)->nodeValue;
  65. $entry_array['type'] = $entry->getElementsByTagName('type')->item(0)-> nodeValue ;

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

  70. 回傳 $entry_arrays; }
  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 $條目)
  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. 返回$entry_array;
  95. }
  96. }
  97. }
  98. else
  99. 返回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. { if($entrys as $entry)
  109. { if($entry->TaggetElementsByName ('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. 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. $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. $ps3->appendChild($ps3value);
  145. $tp = self::$requirelog->createElement('type');
  146. $tpvalue = self::$requirelog->createTextNode($type);
  147. $tp-> appendChild($tpvalue);
  148. $md = self::$requirelog->createElement('module');

  149. $mdvalue = self::$requirelog->createTextNode($module );
  150. $md->appendChild($mdvalue);
  151. $fi = self::$requirelog->createElement('finish');

  152. $fivalue = self: :$requirelog->createTextNode(0);
  153. $fi->appendChild($fivalue);
  154. $entry->appendChild($id);

  155. $entry-> appendChild($time);
  156. $entry->appendChild($op);
  157. $entry->appendChild($bop);
  158. $entry->appendChild($ps1);
  159. $entry ->appendChild($ps2);
  160. $entry->appendChild($ps3);
  161. $entry->appendChild($tp);
  162. $entry->appendChild($md);
  163. $entry->appendChild($fi);
  164. self::$requirelog->documentElement->appendChild($entry);

  165. self::$requirelog->save('requirelog .xml');
  166. return 1;

  167. }
  168. }
  169. ?>
複製程式碼

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

  1. ;
  2. 1
  3. 2009-11-21 16:56:33時間>
  4. peng. Zhou操作員>
  5. zxcxzcxzczxcxz
  6. cxzcxzc
  7. group_group
  8. group_group>
  9. group_group>
  10. 1完成>
  11. 2
  12. 2009-11-21 16: 56:53
  13. peng. Zhou操作者>
  14. 銷售
  15. add_member類型>
  16. mail_group模組> ;
1完成>


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