\d+)$NLP"; $vlanNamePattern = " name (?P.+)$NLP"; $vlanDescriptionPattern = " description (?P.+)$NLP"; $otherPattern = " .*$NLP"; $endPattern = "(?\d+)\/0\/(?P\d+)$NLP"; $pvidPattern = " port (?:access vlan|trunk pvid) (?P\d+)$NLP"; $portHybridPattern = " port hybrid (?:pvid )?vlan (?:(?P\d+)(?: [0-9a-z ]*)? tagged|(?P\d+)(?: \d+)* untagged)$NLP"; $voiceVlanPattern = " voice-vlan (?P\d+) enable$NLP"; preg_match_all("/$startPattern$interfaceAddressPattern(?:$pvidPattern|$portHybridPattern|$voiceVlanPattern|$otherPattern)*$endPattern/", $conf, $interfaces, PREG_SET_ORDER); $stack = array(); foreach ($interfaces as $interface) { if (!isset($stack[$interface["member"]])) $stack[$interface["member"]] = [[], []]; $interface["style"] = ""; if (!empty($interface["pvid"])) $interface["style"] .= "--pvid: {$interface["pvid"]}; "; if (!empty($interface["tagged"])) $interface["style"] .= "--tagged: {$interface["tagged"]}; "; if (!empty($interface["untagged"])) $interface["style"] .= "--untagged: {$interface["untagged"]}; "; if (!empty($interface["voice_vlan"])) $interface["style"] .= "--voice-vlan: {$interface["voice_vlan"]}; "; $stack[$interface["member"]][1 - $interface["port"] % 2][$interface["port"]] = $interface; } /*echo ("");*/ ?> <?= $sysname[1] ?? "Switch sans nom" ?> - Tableau des VLANs

Interfaces

$lines) { $member_7_segments = mb_convert_encoding("&#x" . dechex(0x1FBF0 + $member_id) . ";", 'UTF-8', 'HTML-ENTITIES'); echo "
\n$member_7_segments\n\n\n"; foreach ($lines as $interfaces) { ksort($interfaces); echo "\n"; foreach ($interfaces as $interface) { echo "\n"; }; echo "\n"; } echo "\n\n
{$interface["port"]}
\n
\n"; } ?>
"; } } ?>

Légende

PVID Nom Description
{$vlan["pvid"]}$name$description
Trunk
Hybride (PVID / tagged)
Power on Ethernet
ToIP (voice-vlan)
Interface désactivée