diff --git a/switch.php b/switch.php index 3890fe7..a50971a 100644 --- a/switch.php +++ b/switch.php @@ -20,19 +20,19 @@ if ($conf === false) { preg_match("/ sysname ([\w-]+)/", $conf, $sysname); preg_match("/ip address ([\d.]+)/", $conf, $address); -$startPattern = "(?<=[\r\n])"; +$startPtn = "(?<=[\r\n])"; $NL = "(?:[\r\n]+)"; -$vlanPvidPattern = "vlan (?P\d+)$NL"; -$vlanNamePattern = "$startPattern name (?P.+)$NL"; -$vlanDescriptionPattern = "$startPattern description (?P.+)$NL"; -$otherPattern = "$startPattern .*$NL"; -$endPattern = "(?\d+)\/0\/(?P\d+)$NL"; -$pvidPattern = "$startPattern port (?:access|trunk pvid|hybrid pvid) vlan (?P\d+)$NL"; -$portHybridPattern = "$startPattern port hybrid vlan (?:(?P\d+)(?: (?:to|\d+))* tagged|(?P\d+)(?: \d+)* untagged)$NL"; -$voiceVlanPattern = "$startPattern voice-vlan (?P\d+) enable$NL"; -preg_match_all("/$startPattern$interfaceAddressPattern(?:$pvidPattern|$portHybridPattern|$voiceVlanPattern|$otherPattern)*$endPattern/", $conf, $interfaces, PREG_SET_ORDER); +$vlanPvidPtn = "vlan (?P\d+)$NL"; +$vlanNamePtn = "$startPtn name (?P.+)$NL"; +$vlanDescriptionPtn = "$startPtn description (?P.+)$NL"; +$otherPtn = "$startPtn .*$NL"; +$endPtn = "(?\d+)\/0\/(?P\d+)$NL"; +$pvidPtn = "$startPtn port (?:access|trunk pvid|hybrid pvid) vlan (?P\d+)$NL"; +$portHybridPtn = "$startPtn port hybrid vlan (?:(?P\d+)(?: (?:to|\d+))* tagged|(?P\d+)(?: \d+)* untagged)$NL"; +$voiceVlanPtn = "$startPtn voice-vlan (?P\d+) enable$NL"; +preg_match_all("/$startPtn$interfaceAddressPtn(?:$pvidPtn|$portHybridPtn|$voiceVlanPtn|$otherPtn)*$endPtn/", $conf, $interfaces, PREG_SET_ORDER); $stack = array(); foreach ($interfaces as $interface) {