han8809 发表于 2017-3-3 12:46:42

php riff2

  简易XML解析
  //XML解析工具//XML节点class XMLNode {function XMLNode ($aa){foreach ($aa as $k=>$v)$this->$k = $aa[$k];}}function parseXML($data){$parser = xml_parser_create();xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);xml_parse_into_struct($parser, $data, $values, $tags);xml_parser_free($parser);// 遍历 XML 结构foreach ($tags as $key=>$val) {if ($key == "COMMAND") {$molranges = $val;// each contiguous pair of array entries are the// lower and upper range for each molecule definitionfor ($i=0; $i < count($molranges); $i+=2) {$offset = $molranges[$i] + 1;$len = $molranges[$i + 1] - $offset;$tdb[] = parseMol(array_slice($values, $offset, $len));}} else {continue;}}return $tdb;}function parseMol($mvalues){for ($i=0; $i < count($mvalues); $i++) {$mol[$mvalues[$i]["tag"]] = $mvalues[$i]["value"];}return new XMLNode($mol);}
  用法:
  如
  <Test>
  <Test2>test2</Test2>
  <Test3>test3</Test3>
  </Test>
  $db = parseXML($data);
  则
  $db->Test2 = test2
  $db->Test3 = test3
  UTF8子串截取
  //截取utf8字符串function utf8Substr($str, $from, $len){return preg_replace('#^(?:|+){0,'.$from.'}'.'((?:|+){0,'.$len.'}).*#s','$1',$str);}
页: [1]
查看完整版本: php riff2