- Модуль: webdav
- Путь к файлу: ~/bitrix/modules/webdav/classes/general.php
- Класс: __CParseProppatch
- Вызов: __CParseProppatch::parse_array
function parse_array(&$array, $depth = 0)
{
if (!is_array($array))
return;
foreach ($array as $name => $node)
{
$ns = '';
if (isset($node[0]))
{
$this->parse_ns($node[0]);
}
else
{
$this->parse_ns($node);
}
if (mb_strpos($name, ':') !== false)
{
foreach ($this->namespaces as $nscode => $ns)
{
if (mb_strpos($name, $nscode.':') !== false)
{
$name = str_replace($nscode.':', '', $name);
break;
}
}
if ($ns == '')
{
$this->success = false;
return ;
}
}
if ($depth == 1)
{
$this->mode = $name;
}
if ($depth == 3)
{
$val = '';
if (isset($node[0]['#']) && is_scalar($node[0]['#']))
{
$val = $node[0]['#'];
}
$this->props[] = array(
'name' => $name,
'ns' => $ns,
'status'=> 200,
'val' => $val);
}
if (array_key_exists('#', $node) && is_array($node['#']) && sizeof($node['#']) > 0)
{
$this->parse_array($node['#'], $depth + 1);
}
elseif (isset($node[0]['#']) && is_array($node[0]['#']) && sizeof($node[0]['#']) > 0)
{
$this->parse_array($node[0]['#'], $depth + 1);
}
}
}