Utils.class.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. class Utils {
  3. /**
  4. * 将数据转为XML
  5. */
  6. public static function toXml($array) {
  7. $xml = '<xml>';
  8. forEach ($array as $k => $v) {
  9. $xml .= '<'.$k.'><![CDATA['.$v.']]></'.$k.'>';
  10. }
  11. $xml .= '</xml>';
  12. return $xml;
  13. }
  14. public static function dataRecodes($title, $data) {
  15. $handler = fopen('result.txt', 'a+');
  16. $content = "================".$title."===================\n";
  17. if (is_string($data) === true) {
  18. $content .= $data."\n";
  19. }
  20. if (is_array($data) === true) {
  21. forEach ($data as $k => $v) {
  22. $content .= "key: ".$k." value: ".$v."\n";
  23. }
  24. }
  25. $flag = fwrite($handler, $content);
  26. fclose($handler);
  27. return $flag;
  28. }
  29. public static function parseXML($xmlSrc) {
  30. if (empty($xmlSrc)) {
  31. return false;
  32. }
  33. $array = array();
  34. $xml = simplexml_load_string($xmlSrc);
  35. $encode = Utils::getXmlEncode($xmlSrc);
  36. if ($xml && $xml->children()) {
  37. foreach ($xml->children() as $node) {
  38. //有子节点
  39. if ($node->children()) {
  40. $k = $node->getName();
  41. $nodeXml = $node->asXML();
  42. $v = substr($nodeXml, strlen($k) + 2, strlen($nodeXml) - 2 * strlen($k) - 5);
  43. } else {
  44. $k = $node->getName();
  45. $v = (string)$node;
  46. }
  47. if ($encode != "" && $encode != "UTF-8") {
  48. $k = iconv("UTF-8", $encode, $k);
  49. $v = iconv("UTF-8", $encode, $v);
  50. }
  51. $array[$k] = $v;
  52. }
  53. }
  54. return $array;
  55. }
  56. //获取xml编码
  57. function getXmlEncode($xml) {
  58. $ret = preg_match("/<?xml[^>]* encoding=\"(.*)\"[^>]* ?>/i", $xml, $arr);
  59. if ($ret) {
  60. return strtoupper($arr[1]);
  61. } else {
  62. return "";
  63. }
  64. }
  65. }
  66. ?>