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

如何在PHP中操作变量占位符?,php,Php,如果不使用正则表达式,如果我将数组保存为json格式,有没有办法做到这一点?我对json感兴趣只是因为我使用mongodb,所以输出是json格式的。我有一个名为docroot的字段,它本质上是一个目录路径 docroot : "secure.unstable.qa.example.com" 唯一可以根据其他因素改变的两个部分是不稳定和质量保证。我希望的是一种放置“标记”的方法,以便可以轻松地用适当的变量替换它们 例如: docroot : "secure.{STREAMS}.{ENV}.ex

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

docroot : "secure.unstable.qa.example.com"
唯一可以根据其他因素改变的两个部分是
不稳定
质量保证。
我希望的是一种放置“标记”的方法,以便可以轻松地用适当的变量替换它们

例如:

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

如果保证变量按特定顺序排列(根据您的示例,它们是),那么我建议:


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

如您所说放置标记,然后使用str_replace?唉,这是漫长的一天。谢谢,那很容易。“最安全”的标记是什么?使用%或任何其他符号而不是大括号,因为JSON对象写在大括号内。
##STREAMS##
#ENV##
足够好吗?
// 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"