不使用正则表达式,如果我将数组保存为json格式,有没有办法这样做?我对json感兴趣只是因为我使用mongodb所以输出以json格式出现。我有一个名为docroot
的字段,它实际上是一个目录路径。
docroot : "secure.unstable.qa.example.com"
根据其他因素可能会改变的唯一两件事是unstable
和qa.
我希望的是一种放置“标记”的方法,以便可以轻松地用适当的替换它们变量
例如:
docroot : "secure.{STREAMS}.{ENV}.example.com"
docroot : "unsecure.{STREAMS}.{ENV}.example.com"
答案 0 :(得分:0)
如果变量保证按某种特定顺序(根据你的例子,它们是),那么我会建议not reinventing the wheel:
// Assuming $json contains your JSON
$streams = 'foo';
$env = 'bar';
$data = json_decode($json, TRUE);
var_dump($data['docroot']); // "secure.%s.%s.example.com"
var_dump(sprintf($data['docroot'], $streams, $env)); // "secure.foo.bar.example.com"
如果无法保证变量,或者您只想使用更具描述性的占位符,只需选择一些独特的分隔符(某些字符或字符集不太可能实际出现在您的数据中),并使用{{3 }}