用数组中的某些元素替换字符串(PHP)

时间:2010-01-29 06:44:36

标签: php regex

我有一段文字,如:

$ paragraph =“你好{Customer.name}, 您的{Customer.age}岁。你出生在{Customer.birthdate}“;

我想用数组的内容替换它,例如

array('Customer' => array('name'=>'Tom', 'age'=>8, 'birthdate'=>'1980-01-01'))

我的问题是这样做的最佳方法是什么?如果您有关于如何格式化文本的建议,这也会有所帮助。我猜你必须使用某种正则表达式,可能是preg_filter或preg_replace。

3 个答案:

答案 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()。