Jump to content

Cannot redeclare getchildren()


Kittyfuzz

Recommended Posts

Hi.

I can't seen to resolve this error

Fatal 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.php
Code:
[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.php
Code:
[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]
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.
Link to comment
Share on other sites

both files have the same function(s)

/common/xml.php
/common/2/xml.php

the 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!
Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.