while (count ($lines))
{
$line = array_shift ($lines);
+ $line_class = 'line-other';
if (preg_match ('/# END OF CONFIG|^(interface-range )?(\S+)\s+{$/', $line, $m)) // line starts with interface name
{ // found interface section opening, or end-of-file
if (isset ($current['name']) and $current['is_ethernet'])
'mode' => NULL,
'allowed' => NULL,
'native' => NULL,
+ 'config' => array(),
);
+ $line_class = 'line-header';
$current['indent'] = NULL;
}
}
$current['indent'] = NULL;
elseif ($current['is_ethernet'] and isset ($current['indent']))
{
+ $line_class = 'line-8021q';
if (preg_match ('/^\s+port-mode (trunk|access);/', $line, $m))
$current['config']['mode'] = $m[1];
elseif (preg_match ('/^\s+native-vlan-id (\d+);/', $line, $m))
}
$current['config']['allowed'] = array_unique ($members);
}
+ else
+ $line_class = 'line-other';
}
+ if (is_array ($current['config']))
+ $current['config']['config'][] = array ('type' => $line_class, 'line' => $line);
}
return $ret;