我正在构建一个相当大的 Lucene.NET 搜索表达式。有没有最佳实践方法可以在 PHP 中进行字符串替换?它不一定是这种方式,但我希望有类似于 C# String.Format 方法的东西。
这是 C# 中的逻辑。
var filter = "content:{0} title:{0}^4.0 path.title:{0}^4.0 description:{0} ...";
filter = String.Format(filter, "Cheese");
是否有 PHP5 等价物?
最佳答案
您可以使用 sprintf
function :
$filter = "content:%1$s title:%1$s^4.0 path.title:%1$s^4.0 description:%1$s ...";
$filter = sprintf($filter, "Cheese");
或者您编写自己的函数,用相应的参数替换 {
i
}
:
function format() {
$args = func_get_args();
if (count($args) == 0) {
return;
}
if (count($args) == 1) {
return $args[0];
}
$str = array_shift($args);
$str = preg_replace_callback('/\\{(0|[1-9]\\d*)\\}/', create_function('$match', '$args = '.var_export($args, true).'; return isset($args[$match[1]]) ? $args[$match[1]] : $match[0];'), $str);
return $str;
}
关于C# String.Format() 在 PHP 中等效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1241177/