如何在PHP中操作变量占位符?

时间:2012-12-08 21:45:31

标签: php

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

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

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

例如:

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

1 个答案:

答案 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 }}