从网上找来的XML-RPC库,对于开发小型的外部通讯接口很有用,把这个代码保存为xml-rpc.inc.php<?php/*从网上找来的XML-RPC库,对于开发小型的外部通讯接口很有用*/f......
从网上找来的XML-RPC库,对于开发小型的外部通讯接口很有用,把这个代码保存为xml-rpc.inc.php
<?php /* 从网上找来的XML-RPC库,对于开发小型的外部通讯接口很有用 */ function & XML_serialize($data, $level = 0, $prior_key = NULL){ #assumes a hash, keys are the variable names $xml_serialized_string = ""; while(list($key, $value) = each($data)){ $inline = false; $numeric_array = false; $attributes = ""; #echo "My current key is '$key', called with prior key '$prior_key'<br>"; if(!strstr($key, " attr")){ #if it's not an attribute if(array_key_exists("$key attr", $data)){ while(list($attr_name, $attr_value) = each($data["$key attr"])){ #echo "Found attribute $attribute_name with value $attribute_value<br>"; $attr_value = &htmlspecialchars($attr_value, ENT_QUOTES); $attributes .= " $attr_name=\"$attr_value\""; } } if(is_numeric($key)){ #echo "My current key ($key) is numeric. My parent key is '$prior_key'<br>"; $key = $prior_key; }else{ #you can't have numeric keys at two levels in a row, so this is ok #echo "Checking to see if a numeric key exists in data."; if(is_array($value) and array_key_exists(0, $value)){ # echo " It does! Calling myself as a result of a numeric array.<br>"; $numeric_array = true; $xml_serialized_string .= XML_serialize($value, $level, $key); } #echo "<br>"; } if(!$numeric_array){ $xml_serialized_string .= str_repeat("\t", $level) . "<$key$attributes>"; if(is_array($value)){ $xml_serialized_string .= "\r\n" . XML_serialize($value, $level 1); }else{ $inline = true; $xml_serialized_string .= htmlspecialchars($value); } $xml_serialized_string .= (!$inline ? str_repeat("\t", $level) : "") . "</$key>\r\n"; } }else{ #echo "Skipping attribute record for key $key<bR>"; } } if($level == 0){ $xml_serialized_string = "<?xml version=\"1.0\" ?>\r\n" . $xml_serialized_string; return $xml_serialized_string; }else{ return $xml_serialized_string; } } class XML { var $parser; #a reference to the XML parser var $document; #the entire XML structure built up so far var $current; #a pointer to the current item - what is this var $parent; #a pointer to the current parent - the parent will be an array var $parents; #an array of the most recent parent at each level var $last_opened_tag; function XML($data=null){
1/8 1 2 3 4 5 6 下一页 尾页 |