我有一段文字,如:
$ paragraph =“你好{Customer.name}, 您的{Customer.age}岁。你出生在{Customer.birthdate}“;
我想用数组的内容替换它,例如
array('Customer' => array('name'=>'Tom', 'age'=>8, 'birthdate'=>'1980-01-01'))
我的问题是这样做的最佳方法是什么?如果您有关于如何格式化文本的建议,这也会有所帮助。我猜你必须使用某种正则表达式,可能是preg_filter或preg_replace。
答案 0 :(得分:2)
http://php.net/manual/en/function.sprintf.php
$format_string = "Hello there %s, You are %d years old. You were born in the year %s";
$paragraph = sprintf($format_string,
$customer['name'],
$customer['age'],
$customer['birthdate']);
答案 1 :(得分:2)
您需要使用preg_replace_callback()
。只需匹配\{(.+)\.(.+)\}
并正确索引数组。
答案 2 :(得分:0)
如果$ paragraph中句子的格式总是与大括号语法一致,则可以使用str_replace()。