- preg_match_all: documentation ( source)
<?php
$conf = <<<EOF
#DHCP Server Configuration file.
deny unknown-clients;
subnet 10.8.140.2 netmask 255.255.255.255 {
host example{
optian:param;
}
host example2{
option2:param2;
}
}
subnet 20.8.110.1 netmask 255.255.255.255 {
}
EOF;
$pattern = '/(subnet.*?)*\{((?>[^{}]+)|(?R))*\}/';
preg_match_all($pattern, $conf, $matches);
foreach($matches[0] as $match) {
echo $match . PHP_EOL . PHP_EOL;
}