ホームページ >バックエンド開発 >PHPチュートリアル >php XML操作クラス(カスタマイズ)

php XML操作クラス(カスタマイズ)

WBOY
WBOYオリジナル
2016-07-25 09:04:101118ブラウズ
  1. /**

  2. php XML 操作クラス
  3. リンク: http://bbs.it-home.org
  4. */
  5. class requirelog
  6. {
  7. protected 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. //获取仕上げ文字列全部が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. < p> $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. $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. 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($パラメーター 1);
  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. ?> ;

コードをコピー

2、requirelog.xml文件、参考格式例:

  1. 1
  2. peng.zhou
  3. zxcxzcxzczxcxz
  4. cxzcxzcs1>
  5. add_group
  6. cn_group
  7. 1
  8. ;
  9. 2
  10. peng.zhou
  11. sales/ byoperator>
  12. add_member
  13. mail_group
  14. 1< /finish>
复制代


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