note 24640 deleted from ref.array by sniper
| From: | sniper@php.net | Date: | Sat, 18 Oct 2003 18:04:03 +0000 |
| Subject: | note 24640 deleted from ref.array by sniper | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-58842@lists.php.net to get a copy of this message | ||
Note Submitter: dan@kuykendall.org
----
Here is my var2xml function.
This one will convert any var type except objects, and for arrays it will take indexed subarrays and
assume they should be duplicates of the parent tag name.
function var2xml ($name, $value, $indent = 1)
{
$indentstring = $this->indentstring;
for ($i = 0; $i < $indent; $i++)
{
$indentstring .= $this->indentstring;
}
if (!is_array($value))
{
$xml =
$indentstring.'<'.$name.'>'.$value.'</'.$name.'>'."\n";
}
else
{
if($indent === 1)
{
$isindex = False;
}
else
{
$isindex = True;
while (list ($idxkey, $idxval) = each ($value))
{
if ($idxkey !== (int)$idxkey)
{
$isindex = False;
}
}
}
reset($value);
while (list ($key, $val) = each ($value))
{
if($indent === 1)
{
$keyname = $name;
$nextkey = $key;
}
elseif($isindex)
{
$keyname = $name;
$nextkey = $name;
}
else
{
$keyname = $key;
$nextkey = $key;
}
if (is_array($val))
{
$xml .= $indentstring.'<'.$keyname.'>'."\n";
$xml .= $this->var2xml ($nextkey, $val, $indent+1);
$xml .= $indentstring.'</'.$keyname.'>'."\n";
}
else
{
$xml .= $this->var2xml ($nextkey, $val, $indent);
}
}
}
return $xml;
}