我正在构建一个相当大的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");
Run Code Online (Sandbox Code Playgroud)
是否有PHP5等价物?
Gum*_*mbo 69
你可以使用这个sprintf功能:
$filter = "content:%1$s title:%1$s^4.0 path.title:%1$s^4.0 description:%1$s ...";
$filter = sprintf($filter, "Cheese");
Run Code Online (Sandbox Code Playgroud)
或者你编写自己的函数来替换相应的参数:{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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23642 次 |
| 最近记录: |