Kittyfuzz Posted October 2, 2006 Share Posted October 2, 2006 Hi.I can't seen to resolve this errorFatal error: Cannot redeclare getchildren() (previously declared in /home/extreme/public_html/modules/Radio/2/common/xml.php:3) in /home/extreme/public_html/modules/Radio/common/xml.php on line 3/common/xml.phpCode:[code]<?php//XML handling routines function GetChildren($vals, &$i){ while($i < count($vals)) { switch ($vals[$i]['type']) { //case 'cdata': case 'complete' : if(isset($vals[$i]['attributes'])) { $value = array("attributes" => $vals[$i]['attributes'], "value" => $vals[$i]['value']); } else { $value = array("value" => $vals[$i]['value']); } $name = $vals[$i]['tag']; $children["$name"][] = $value; break; case 'open' : $siblings = GetChildren($vals, ++$i); if(isset($vals[$i]['attributes'])) { $siblings['attributes'] = $vals[$i]['attributes']; } $name = $vals[$i]['tag']; $children["$name"][] = $siblings; /* array_push($children, array("attributes" => $vals[$i]['attributes'], "children" => GetChildren($vals, ++$i)) ); */ break; case 'close' : return $children; break; default : echo "XML error, Unsupported tag type: " . $vals[$i]['type'] . "<br>"; } $i++; } return $children; } function GetXMLTree($data, $uppercase = 1) { $p = xml_parser_create(); xml_parser_set_option($p, XML_OPTION_SKIP_WHITE, 1); xml_parser_set_option($p, XML_OPTION_CASE_FOLDING, $uppercase); xml_parse_into_struct($p, $data, $vals, $index); xml_parser_free($p); $tree = array(); $i = 0; $tree = GetChildren($vals, $i); return $tree; } //###################################################### //###################################################### function CompackTree($data){ reset($data); while(list($key, $value) = each($data)) { if(is_array($value)) { //SPECIAL HANDLING //Make Attributes the Values if value empty if(isset($value['attributes'])) if(is_array($value['attributes'])) if(!isset($value['value'])) { $leaf["$key"] = $value['attributes']; continue; } $c = count($value); if($c>1) { //REMOVE empty Attributes if Value is valid if(!((isset($value['attributes'])) && (is_array($value['attributes']))) && (isset($value['value']))) $leaf["$key"] = $value['value']; else $leaf["$key"] = CompackTree($value); } else { $temp = $value[0]; //REMOVE empty Attributes if Value is valid if(isset($temp['attributes'])) { if(!is_array($temp['attributes']) && (isset($temp['value']))) $leaf["$key"] = $temp['value']; else $leaf["$key"] = CompackTree($temp); } else if(isset($temp['value'])) $leaf["$key"] = $temp['value']; else $leaf["$key"] = CompackTree($temp); } } else $leaf["$key"] = $value; } // while loop return $leaf;} function XMLToArray($data, $uppercase = 1){ $tree = GetXMLTree($data, $uppercase); return CompackTree($tree);}function XML2Array($data, $uppercase = 1){ return XMLToArray($data, $uppercase);}function XML2Arr($data, $uppercase = 1){ return XMLToArray($data, $uppercase);}//######################################################//######################################################function ChildKeyIsNum($data){ if(!is_array($data)) return false; reset($data); list($key, $value) = each($data); if(is_numeric($key)) return true; else return false;}function MakeAttr($data){ if(!is_array($data)) return ""; $attr = " "; reset($data); while(list($key, $value) = each($data)){ $attr .= " $key=\"$value\""; } // while loop return $attr;}function ArrayToXML($data, $parent = ""){ if(empty($parent)) $xml = '<?xml version="1.0"?>'; else $xml = ""; reset($data); while(list($key, $value) = each($data)) { $attr = ""; if(is_numeric($key)) { $key = $parent; if(!empty($value['attributes'])) $attr = MakeAttr($value['attributes']); unset($value['attributes']); }; if(ChildKeyIsNum($value)) $xml .= ArrayToXML($value,$key); else if(is_array($value)) { $xml .= "<$key$attr>"; $xml .= ArrayToXML($value,$key); $xml .= "</$key$attr>"; } else $xml .= "<$key$attr>$value</$key>"; }//while return $xml; }function Array2XML($data, $parent = ""){ return ArrayToXML($data, $parent);}function Arr2XML($data, $parent = ""){ return ArrayToXML($data, $parent);}//######################################################//###################################################### function Keys2Lower($a){ if(!is_array($a)) return $a; unset($res); reset($a); while(list($key, $value) = each($a)){ if(is_array($value)) $res[strtolower($key)] = Keys2Lower($value); else $res[strtolower($key)] = $value; } // while loop return $res;}function XMLheader(){ header("Content-type: text/xml");}function EmptyNodeCleanUp(&$data){ while(list($key, $val) = each($data)){ if(is_array($val)) $data[$key] = ""; } // while loop}function echoXML($xml){ XMLheader(); if(is_array($xml)) echo Array2XML($xml); else echo $xml;}?>[/code]============================================================================/common/2/xml.phpCode:[code]<?php//XML handling routinesfunction GetChildren($vals, &$i){ while($i < count($vals)) { switch ($vals[$i]['type']) { //case 'cdata': case 'complete' : if(isset($vals[$i]['attributes'])) { $value = array("attributes" => $vals[$i]['attributes'], "value" => $vals[$i]['value']); } else { $value = array("value" => $vals[$i]['value']); } $name = $vals[$i]['tag']; $children["$name"][] = $value; break; case 'open' : $siblings = GetChildren($vals, ++$i); if(isset($vals[$i]['attributes'])) { $siblings['attributes'] = $vals[$i]['attributes']; } $name = $vals[$i]['tag']; $children["$name"][] = $siblings; /* array_push($children, array("attributes" => $vals[$i]['attributes'], "children" => GetChildren($vals, ++$i)) ); */ break; case 'close' : return $children; break; default : echo "XML error, Unsupported tag type: " . $vals[$i]['type'] . "<br>"; } $i++; } return $children; } function GetXMLTree($data, $uppercase = 1) { $p = xml_parser_create(); xml_parser_set_option($p, XML_OPTION_SKIP_WHITE, 1); xml_parser_set_option($p, XML_OPTION_CASE_FOLDING, $uppercase); xml_parse_into_struct($p, $data, $vals, $index); xml_parser_free($p); $tree = array(); $i = 0; $tree = GetChildren($vals, $i); return $tree; } //###################################################### //###################################################### function CompackTree($data){ reset($data); while(list($key, $value) = each($data)) { if(is_array($value)) { //SPECIAL HANDLING //Make Attributes the Values if value empty if(isset($value['attributes'])) if(is_array($value['attributes'])) if(!isset($value['value'])) { $leaf["$key"] = $value['attributes']; continue; } $c = count($value); if($c>1) { //REMOVE empty Attributes if Value is valid if(!((isset($value['attributes'])) && (is_array($value['attributes']))) && (isset($value['value']))) $leaf["$key"] = $value['value']; else $leaf["$key"] = CompackTree($value); } else { $temp = $value[0]; //REMOVE empty Attributes if Value is valid if(isset($temp['attributes'])) { if(!is_array($temp['attributes']) && (isset($temp['value']))) $leaf["$key"] = $temp['value']; else $leaf["$key"] = CompackTree($temp); } else if(isset($temp['value'])) $leaf["$key"] = $temp['value']; else $leaf["$key"] = CompackTree($temp); } } else $leaf["$key"] = $value; } // while loop return $leaf;} function XMLToArray($data, $uppercase = 1){ $tree = GetXMLTree($data, $uppercase); return CompackTree($tree);}function XML2Array($data, $uppercase = 1){ return XMLToArray($data, $uppercase);}function XML2Arr($data, $uppercase = 1){ return XMLToArray($data, $uppercase);}//######################################################//######################################################function ChildKeyIsNum($data){ if(!is_array($data)) return false; reset($data); list($key, $value) = each($data); if(is_numeric($key)) return true; else return false;}function MakeAttr($data){ if(!is_array($data)) return ""; $attr = " "; reset($data); while(list($key, $value) = each($data)){ $attr .= " $key=\"$value\""; } // while loop return $attr;}function ArrayToXML($data, $parent = ""){ if(empty($parent)) $xml = '<?xml version="1.0"?>'; else $xml = ""; reset($data); while(list($key, $value) = each($data)) { $attr = ""; if(is_numeric($key)) { $key = $parent; if(!empty($value['attributes'])) $attr = MakeAttr($value['attributes']); unset($value['attributes']); }; if(ChildKeyIsNum($value)) $xml .= ArrayToXML($value,$key); else if(is_array($value)) { $xml .= "<$key$attr>"; $xml .= ArrayToXML($value,$key); $xml .= "</$key$attr>"; } else $xml .= "<$key$attr>$value</$key>"; }//while return $xml; }function Array2XML($data, $parent = ""){ return ArrayToXML($data, $parent);}function Arr2XML($data, $parent = ""){ return ArrayToXML($data, $parent);}//######################################################//###################################################### function Keys2Lower($a){ if(!is_array($a)) return $a; unset($res); reset($a); while(list($key, $value) = each($a)){ if(is_array($value)) $res[strtolower($key)] = Keys2Lower($value); else $res[strtolower($key)] = $value; } // while loop return $res;}function XMLheader(){ header("Content-type: text/xml");}function EmptyNodeCleanUp(&$data){ while(list($key, $val) = each($data)){ if(is_array($val)) $data[$key] = ""; } // while loop}function echoXML($xml){ XMLheader(); if(is_array($xml)) echo Array2XML($xml); else echo $xml;}?>[/code]This is for request and dedication script on my radio site.Thanks for any help :)MOD EDIT : Code tags added. Please use them in future. Quote Link to comment Share on other sites More sharing options...
printf Posted October 2, 2006 Share Posted October 2, 2006 both files have the same function(s)/common/xml.php/common/2/xml.phpthe above (2) files have the same function GetChildren(), in fact they are the same file!Change your include call to only use one of them and use include_once() or require_once() to only include the file once, if by chance it could be included by another script!me! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.