在数据库中存储带变量的配置文件

时间:2011-05-24 17:34:33

标签: php mysql

我有几个路由器配置文件。变量在< >

configure
   port aps-<x>
      description "<VAR1>;<port_APS>"
      aps
         neighbor <@IP_loopback3_NM_PAIRE>
         no revert-time
         working-circuit <x/y/z>  
      exit
      sonet-sdh
         path
            mtu 4494
            atm
            exit
            no shutdown
         exit
      exit
      no shutdown
   exit
exit

我想知道如何将原始文本存储到我的数据库中然后使用php来构建带有一些值的最终配置而不是我的变量.... 就像一个:

sprintf('port aps-%d',$aps_port);

但是对于完全文本......

有什么想法吗?

一切都好!

1 个答案:

答案 0 :(得分:2)

最简单的方法是使用str_replace

$vars = array(
   'x' => 'foo',
   'VAR1' => 'bar',
   'port_APS' => 'baz',
   '@IP_loopback3_NM_PAIRE' => 'hello',
   'x/y/z' => 'world',
);

$invars = array();
foreach (array_keys($vars) as $var) {
    $invars[] = "<$var>";
}

$text = str_replace($invars, $vars, $text);

收率:

configure
   port aps-foo
      description "bar;baz"
      aps
         neighbor hello
         no revert-time
         working-circuit world  
      exit
      sonet-sdh
         path
            mtu 4494
            atm
            exit
            no shutdown
         exit
      exit
      no shutdown
   exit
exit