21,887
社区成员
发帖
与我相关
我的任务
分享
$s = <<< TEXT
src user {
ip 192.168.1.30
}
time testTime {
weekly smw
}
acl {
user within TestTime {
pass !movies !politics !news !video !forum any
}else {
pass any
}
}
TEXT;
function foo($s) {
preg_match('/acl\s+{(.+)}/is', $s, $p); //提取 acl 中的内容
preg_match('/(.+within TestTime {.+}.+})/isU', $p[1], $r); //提取第一节
$s = str_replace($p[1], $p[1].$r[1], $s);
return $s;
}
//执行一次
echo $s = foo($s);
//再执行一次,看看效果是你要的吗?
echo $s = foo($s);