Utils.class.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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. ?>