Строка C#.Эквивалент Format() в PHP?
Я строю довольно большой Люцен.Выражение поиска в СЕТИ. Есть ли лучший способ выполнить замену строки в PHP? Это не обязательно должно быть так, но я надеюсь на что-то похожее на строку C#.Метод форматирования.
Вот как выглядела бы логика в C#.
var filter = "content:{0} title:{0}^4.0 path.title:{0}^4.0 description:{0} ...";
filter = String.Format(filter, "Cheese");
Существует ли эквивалент PHP5?
40
2 answers
Вы могли бы использовать sprintf
функция:
$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;
}
66
Author: Gumbo, 2009-08-06 20:43:47
Попробуйте sprintf http://php.net/sprintf
7
Author: Mateusz Kubiczek, 2009-08-06 20:27:21