2

在不使用正则表达式的情况下,如果我将数组保存为 json 格式,有没有办法这样做?我对 json 感兴趣,只是因为我使用的是 mongodb,所以输出以 json 格式输出。我有一个名为的字段docroot,它本质上是一个目录路径。

docroot : "secure.unstable.qa.example.com"

唯一可以根据其他因素改变的两部分是unstableqa.我希望的是一种放置“标记”的方法,以便可以轻松地用适当的变量替换它们。

例如:

docroot : "secure.{STREAMS}.{ENV}.example.com"
docroot : "unsecure.{STREAMS}.{ENV}.example.com"
4

1 回答 1

0

如果保证变量按特定顺序排列(根据您的示例,它们是),那么我建议不要重新发明轮子

// 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"

如果变量不能得到保证,或者您只想使用更具描述性的占位符,只需选择一些唯一的分隔符(一些不太可能实际出现在数据中的字符或字符集),然后使用str_replace().

于 2012-12-09T02:11:32.410 回答