php xml生成函数程序代码

  1. function xml_file($filename, $keyid = 'errorentry')
  2. {
  3. $string = implode('', file($filename));
  4. return xml_str($string, $keyid);
  5. }
  6. function xml_str($string, $keyid = 'errorentry')
  7. {
  8. $parser = xml_parser_create();
  9. xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
  10. xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
  11. xml_parse_into_struct($parser, $string, $values, $tags);
  12. xml_parser_free($parser);
  13. $tdb = array();
  14. foreach ($tags as $key=>$val)
  15. {
  16. if($key != $keyid) continue;
  17. $molranges = $val;
  18. for ($i=0; $i < count($molranges); $i+=2)
  19. {
  20. $offset = $molranges[$i] + 1;
  21. $len = $molranges[$i + 1] - $offset;
  22. $tdb[] = xml_arr(array_slice($values, $offset, $len));
  23. }
  24. }
  25. return $tdb;
  26. }
  27. function xml_arr($mvalues)
  28. {//开源代码phpfensi.com
  29. $arr = array();
  30. for($i=0; $i < count($mvalues); $i++)
  31. {
  32. $arr[$mvalues[$i]['tag']] = $mvalues[$i]['value'];
  33. }
  34. return $arr;
  35. }