<?php
$data = <<<DATA
Main{
NetworkAccess 1;
MaxCPE 6;
MaxClassifiers 20;
GlobalPrivacyEnable 1;
BaselinePrivacy{
AuthTimeout 10;
ReAuthTimeout 10;
AuthGraceTime 600;
OperTimeout 10;
ReKeyTimeout 10;
TEKGraceTime 600;
AuthRejectTimeout 60;
SAMapWaitTimeout 1;
SAMapMaxRetries 4;
}
UsServiceFlow{
UsServiceFlowRef 1;
QosParamSetType 7;
TrafficPriority 2;
MaxRateSustained 1000000;
SchedulingType 2;
MaxTrafficBurst 8000;
MaxConcatenatedBurst 8000;
}
DsServiceFlow{
DsServiceFlowRef 101;
QosParamSetType 7;
TrafficPriority 2;
MaxRateSustained 10000000;
}
}
DATA;
function processItems($items, &$current, &$parent) {
$item = trim(array_shift($items));
if ($item) {
if (substr($item, -1) === '{') {
$key = rtrim($item, '{');
$current[$key] = [];
processItems($items, $current[$key], $parent);
return;
}
if (trim($item) === '}') {
processItems($items, $parent, $parent);
return;
}
$parts = explode(' ', $item);
$current[$parts[0]] = rtrim($parts[1], ';');
processItems($items, $current, $parent);
}
}
$curr = [];
processItems(explode("\n", $data), $curr, $curr);
print_r($curr);
preferences:
24.04 ms | 409 KiB | 5 Q